一、包装类
二、String
String的常用方法:
- equals:判断内容是否相等,区分大小写。
String str1 = "hello";
String str2 = "Hello";
System.out.println(str1.equals(str2));//false
- equalsIgnoreCase:判断内容是否相等,不区分大小写。
String username = "john";
if(username.equalsIgnoreCase("johN")) {//输出 相等
System.out.println("相等");
} else {
System.out.println("不等");
}
- length:获取字符的个数,字符串的长度。
System.out.println("韩顺平".length());//3
- indexOf:获取字符在字符串对象中第一次出现的索引,索引从0开始,如果找不到,则返回-1。
- lastIndexOf:获取字符在字符串对象中最后一次出现的索引,索引从0开始,如果找不到,则返回-1。
String s1 = "wer@terwe@g@";
System.out.println(s1.indexOf('@'));//3
System.out.println(s1.indexOf("we"));//0
System.out.println(s1.lastIndexOf('@'));//11
System.out.println(s1.lastIndexOf("we"));//7
- subString:截取指定范围的字符串。
String name = "hello,张三";
System.out.println(name.substring(6));//张三 截取 [6,最后] 的字符串
System.out.println(name.substring(1, 6));//ello, 截取 [1,6) 的字符串
- toUpperCase:转换成大写。
- toLowerCase:转换成小写。
String s = "heLLO";
System.out.println(s.toUpperCase());//HELLO
System.out.println(s.toLowerCase());//hello
- concat:拼接字符串。
String s1 = "宝玉";
s1 = s1.concat("林黛玉").concat("薛宝钗").concat("together");
System.out.println(s1);//宝玉林黛玉薛宝钗together
- replace:替换,在字符串中找到第一个参数,全部替换为第二个参数。
注意:返回替换后的字符串,替换不会对原本的字符串造成影响。
String s2 = "宝玉 and 林黛玉 林黛玉 林黛玉";
String s3 = s2.replace("林黛玉", "薛宝钗");
System.out.println(s2);//宝玉 and 林黛玉 林黛玉 林黛玉
System.out.println(s3);//宝玉 and 薛宝钗 薛宝钗 薛宝钗
- split:分割字符串。
注意:如果有特殊字符,需要用转义符\
String poem = "锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦";
String[] split = poem.split(",");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
//锄禾日当午
//汗滴禾下土
//谁知盘中餐
//粒粒皆辛苦
}
String poem1 = "C:\\idea_java_projects\\chapter13";
String[] split1 = poem1.split("\\\\");
for(int i = 0; i < split1.length; i++) {
System.out.println(split1[i]);
//C:
//idea_java_projects
//chapter13
}
- compareTo:比较两个字符串的大小
(1)先逐个比较字符的内容,如果遇不等,则返回两个字符的差;
(2)如果前面比较的部分相等,但其中一个字符串没有字符了,即长度不等,则返回两个字符串的长度差;
(3)如果每个字符都相同,长度也相同,则返回0.
String str = "jack";
String a1 = "jaa";
String a2 = "jaak";
String a3 = "jaakk";
System.out.println(a1.compareTo(str));//-2 'a' - 'c' = -2
System.out.println(a2.compareTo(str));//-2 'a' - 'c' = -2
System.out.println(a3.compareTo(str));//-2 'a' - 'c' = -2
String b1 = "jac";
String b2 = "jacka";
System.out.println(b1.compareTo(str));//-1 b1.length - str.length = -1
System.out.println(b2.compareTo(str));//1 b2.length - str.length = 1
String c = "jack";
System.out.println(c.compareTo(str));//0
- charAt:返回指定索引处的字符
String s5 = "hspeduxyz";
System.out.println(s5.charAt(5));//u
- getBytes:将字符串转换为字节数组。
//第一种:该方法将使用平台默认的字符编码方式,将字符串转换为字节数组。
//返回一个byte数组,其中每个字节都表示字符串中相应位置的字符。
public byte[] getBytes();
//第二种:该方法需要传入一个字符编码方式charsetName作为参数,将字符串转换为字节数据。
//可能会抛出UnsupportedEncodingException异常,需要进行异常处理。
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException;
String str01 = "Hello,你好,こんにちは";
//使用平台默认字符编码方式
byte[] bytesDefault = str01.getBytes();
System.out.println("使用平台默认字符编码方式进行转换:");
for(byte b : bytesDefault) {
//打印字节数组的十六进制表示
System.out.print(Integer.toHexString(b & 0xFF).toUpperCase() + " ");
//48 65 6C 6C 6F 2C E4 BD A0 E5 A5 BD 2C E3 81 93 E3 82 93 E3 81 AB E3 81 A1 E3 81 AF
}
//使用UTF-8字符编码方式
try {
byte[] bytesUTF8 = str01.getBytes("UTF-8");
System.out.println("\n使用UTF-8字符编码方式进行转换:");
for(byte b : bytesUTF8) {
System.out.print(Integer.toHexString(b & 0xFF).toUpperCase() + " ");
//48 65 6C 6C 6F 2C E4 BD A0 E5 A5 BD 2C E3 81 93 E3 82 93 E3 81 AB E3 81 A1 E3 81 AF
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//使用ISO-8859-1字符编码方式
try {
byte[] bytesISO8859 = str01.getBytes("ISO-8859-1");
System.out.println("\n使用ISO-8859-1字符编码方式进行转换:");
for(byte b : bytesISO8859) {
System.out.print(Integer.toHexString(b & 0xFF).toUpperCase() + " ");
//48 65 6C 6C 6F 2C 3F 3F 2C 3F 3F 3F 3F 3F
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}