String
//字符串3+1种创建方式,3种构造方法,1种直接创建
//public String(); 空参构造
String str1 = new String();
//public String(char [] array); 字符数组创建
char [] charArray = {'a','b','c'};
String str2 = new String(charArray);
//public String(byte [] array); 字节数组创建
byte [] byteArray = {97, 98, 99};
String str3 = new String(byteArray);
//直接创建
String str4 = "abc";
//equals(str); == 对于基本数据类型来说是比较值,对于引用数据类型是比较地址值;
//equalsIgnoreCase(str) 忽略大小写进行比较
//推荐 "abc".equals(str),不推荐 str.equals("abc"),原因:当str为null时会报空指针;
System.out.println(str2 == str3);//false 比较的是地址值
System.out.println(str2.equals(str3));//true 比较的是值
System.out.println(str2.equals(str4));//true 比较的是值
//length(); 获取字符串长度,也就是字符的个数;
System.out.println(str2.length()); // 3
//concat(str); 将字符串进行拼接,返回新的字符串,st2 = "abc";
String newStr2 = str2.concat("defg");
System.out.println(newStr2); // "abcdefg"
//charAt(int index); 获取指定索引位置的字符,newStr2 = "abcdefg";
System.out.println(newStr2.charAt(0)); // 'a'
//indexOf(str); 查找参数str出现在字符串的首次索引位置,没有返回-1,newStr2 = "abcdefg";
System.out.println(newStr2.indexOf("fg")); // 5
System.out.println(newStr2.indexOf("h")); // -1
//substring(int index); 截取从参数位置开始一直到字符串结尾,返回新的字符串,newStr2 = "abcdefg";
//substring(int begin , int end); 截取从begin开始,到end结束范围内的字符串,左闭右开区间,包含左边,不包含右边;
System.out.println(newStr2.substring(2));// "cdefg"
System.out.println(newStr2.substring(3, 5));// "de"
//toCharArray(); 将当前字符串拆分成字符数组,newStr2 = "abcdefg";
//备注: 直接打印char数组也可以打印出内容,因为有println(char[] chars)这个方法;打印其他数组得到的是地址值;
char[] chars = newStr2.toCharArray();
System.out.println(chars[3]); //d
System.out.println(chars.length);// 7
//getBytes(); 转换成字节数组,newStr2 = "abcdefg";
byte[] bytes = newStr2.getBytes();
System.out.println(bytes[2]); // 99
//replace(oldStr,newStr);将老字符串替换成新字符串,newStr2 = "abcdefg";
System.out.println(newStr2.replace("abc", "123")); // "123defg"
//split(String regex); 按照参数规则,将字符串切割成若干份;
String test = "111,222,333";
String[] split = test.split(",");
for (String s : split) {
System.out.println(s);//111 222 333
}