IntelliJ IDEA
代码自动对齐快捷键:Ctrl + Alt + L
快速编译/运行:Shift + F10
Eclipse IDEA
快速编译/运行:Ctrl + F11
JAVA 其他
JAVA的 “万能头文件”
import java.util.*;
Java数组的三种打印方式
JAVA中的STL简单使用
ArrayList和linkedList的区别(不过我感觉差不多)
Java>>与>>>的区别(对于正数而言,>>和>>>没区别)
数组
- 数组初始化(里面不能加数字)
字符串常用操作
- indexOf(String s) 字符串第一次出现的位置
- lastIndexOf(String str) 字符串最后一次出现的位置
String str ="Keeping running";
int first = str.indexOf("ing");
int second = str.lastIndexOf("ing");
System.out.println(first); // 4
System.out.println(second); // 12
- charAt() 字符串的某个字符
String str = "hello word";
char tmp = str.charAt(6);
System.out.println(tmp); // w
- substring(int beginIndex, int endIndex) 字符串的截取
String str = "Hello word";
String tmp = str.substring(0,3);
System.out.println(tmp); // Hel
- trim() 字符串忽略前导空格和尾部空格
String str = " Hello ";
String tmp = str.trim();
System.out.println(tmp); // Hello
- replace(oldchar,newChar) 字符串替换字符
String str= "address";
String tmp = str.replace("d", "b");
System.out.println(tmp); // abbress
- startsWith(String prefix) 字符串的开始
- endsWith(String suffix) 字符串的结尾
String str= "address";
Boolean tmp = str.startsWith("a");
Boolean stuff = str.startsWith("e");
System.out.println(tmp); // true
System.out.println(stuff); // true
- equals(String otherstr) 字符串比较是否相同
- equalsIgnoreCase(String otherstr) 字符串比较是否相同(忽略大小写)
String str= "address";
Boolean tmp = str.equals("address");
Boolean stuff = str.equalsIgnoreCase("ADDRESS");
System.out.println(tmp); // true
System.out.println(stuff); // true
- compareTo() 字符串的按字典顺序比较
String tmp = "Hello1";
System.out.println(tmp.compareTo("Hello0")); // 1
System.out.println(tmp.compareTo("Hello1")); // 0
System.out.println(tmp.compareTo("Hello2")); // -1
- length() 字符串的长度
String tmp = "Hello";
System.out.println(tmp.length()); // 5
- toCharArray() 将一个字符串变为字符数组
- String(char[] value) 将全部的字符数组变为String
- String(char[] value,int offset,int count) 将部分字符数组变为String
String str1 = "hello";
char str[] = str1.toCharArray();
for (int i = 0; i < str.length; i++)
System.out.print(str[i] + "、"); // h、e、l、l、o、
}
System.out.println("");
String str2 = new String(str);
String str3 = new String(str, 0, 3);
System.out.println(str2); // hello
System.out.println(str3); // hel
字符串的七个函数(用法即字面意思)
toLowerCase、toUpperCase
isLetterOrDigit、isLowerCase
isUpperCase、isDigit、isLetter
字符串常用操作(进阶)
StringBuffer 和 StringBuilder 用法类似
前者是线程同步的,效率低,但线程安全
后者是线程不同步的,效率高,但线程不安全
两者都是字符串缓冲区,是一个容器(buffer是缓冲区的意思)
两者都可以用于对字符串进行修改(而String不可以对字符串进行修改)
特点:
1、长度可以变化
2、可以直接操作多个数据类型
3、最终会通过 toString() 方法变成字符串
容器所具备的功能:增删改查 CDUR(Create,Delete,Update,Read)
下面以 StringBuffer 演示
- 增(存储)
StringBuffer tmp = new StringBuffer();
StringBuffer stuff = tmp.append(123);
System.out.println(tmp.toString()); // 123
System.out.println("tmp==stuff:" + (tmp == stuff)); // tmp==stuff:true 说明是同一个对象
tmp.append(456).append(true).append("abc");
System.out.println(tmp.toString()); // 123456trueabc
tmp.insert(6, 7);
System.out.println(tmp.toString()); // 1234567trueabc
- 删(删除)
StringBuffer tmp = new StringBuffer("12345");
tmp.delete(1, 2);
System.out.println(tmp.toString()); // 1345
tmp.deleteCharAt(1);
System.out.println(tmp.toString()); // 145
- 改(修改)
StringBuffer tmp = new StringBuffer("12345");
tmp.replace(0, 4, "java");
System.out.println(tmp); // java5
tmp.setCharAt(4, 's');
System.out.println(tmp); // javas
- 查(获取)
//下列方法在字符串常用操作都有讲到
length()
charAt(int index)
indexof(String str)
lastIndexOf(String str)
substring(int start,int end)
- 反转(其他)
StringBuffer tmp = new StringBuffer("12345");
tmp.reverse();
System.out.println(tmp); // 54321
比赛
注:参考蓝桥杯(Java)注意事项
以下面形式为模板进行编程
public class Main {
public static void main(String[] args) {
}
}
熟练运用Java类库中最常用的API,例如:
String、StringBuilder、Integer、List、Set、Map、Deque、PriorityQueue、Arrays、Collections、BigInteger、BigDecimal、Math
浮点数的比较不能用 == 举例:
System.out.println(0.2+0.1==0.3);
//运行结果:false
处理手段:
1、扩大倍数,转化为整数。
2、任意精度的浮点数:java.math包
输入输出 – 常用技巧
格式1:Scanner sc = new Scanner (new BufferedInputStream(System.in))
格式2:Scanner sc = new Scanner (System.in);
在读入数据量大的情况下,格式1的速度会快些。
读一个整数: int n = sc.nextInt();
读一个字符串:String s = sc.next();
读一个浮点数:double t = sc.nextDouble();
读一整行: String s = sc.nextLine();
判断是否有下一个输入可以用sc.hasNext()或sc.hasNextInt()或sc.hasNextDouble()或sc.hasNextLine()