记录:NO.253
场景:体验java.lang.String的JDK版本:jdk1.8.0_181。
一、基本信息
java.lang.String处理字符串的类,是一个final类。
java.lang.String实现如下接口:
java.io.Serializable
java.lang.Comparable
java.lang.CharSequence
java.lang.String存储值的属性名value[]
private final char value[];
二、静态方法
1.数组char[]转换为字符串
char[] chrStr = new char[]{'福','州','在','中','国','的','福','建'};
String staticOut1 = String.copyValueOf(chrStr);
System.out.println("staticOut1 = " + staticOut1);
String staticOut2 = String.copyValueOf(chrStr,3,5);
System.out.println("staticOut2 = " + staticOut2);
2.格式化字符串
String staticOut3 = String.format("地级市: %s;\n输出16进制数字: %X.","Fuzhou",88);
System.out.println("staticOut3 = " + staticOut3);
3.使用分隔符连接字符串
String staticOut4 = String.join(";","福州","厦门","泉州");
System.out.println("staticOut4 = " + staticOut4);
4.基本类型转换为String类型
String staticOut5 = String.valueOf(true);
System.out.println("staticOut5 = " + staticOut5);;
String staticOut6 = String.valueOf('a');
System.out.println("staticOut6 = " + staticOut6);
char[] chrStr2 = new char[]{'福','州','在','中','国','的','福','建'};
String staticOut7 = String.valueOf(chrStr2);
System.out.println("staticOut7 = " + staticOut7);
String staticOut8 = String.valueOf(chrStr2,3,5);
System.out.println("staticOut8 = " + staticOut8);
double doubleNum = 89.123456789d;
String staticOut9 = String.valueOf(doubleNum);
System.out.println("staticOut9 = " + staticOut9);
float floatNum = 99.123456789f;
String staticOut10 = String.valueOf(floatNum);
System.out.println("staticOut10 = " + staticOut10);
int intNum = 999999999;
String staticOut11 = String.valueOf(intNum);
System.out.println("staticOut11 = " + staticOut11);
long longNum = 999999999999999999l;
String staticOut12 = String.valueOf(longNum);
System.out.println("staticOut12 = " + staticOut12);
Object obj = "福建的省会是福州";
String staticOut13 = String.valueOf(obj);
System.out.println("staticOut13 = " + staticOut13);
三、非静态方法
1.字符串替换
String out31 =str.replace("厦门","泉州");
System.out.println("out31 = " + out31);
String out32 =str.replaceAll("厦门","泉州");
System.out.println("out32 = " + out32);
String out33 =str.replaceAll("厦门","泉州");
System.out.println("out33 = " + out33);
2.字符串分割
String str6 = "厦门;泉州;福州";
String[] out34 =str6.split(";");
System.out.println("out34 = " + out34[0]);
String[] out35 =str6.split(";",2);
System.out.println("out34 = " + out35[0]+" "+ out35[1]);
3.判断字符串是否以指定的前缀开头后缀结尾
boolean out10 = str.endsWith("福建");
System.out.println("out10 = " + out10);
String str7 = "厦门;泉州;福州";
boolean out36 =str7.startsWith("厦门");
System.out.println("out36 = " + out36);
boolean out37 =str7.startsWith("泉州",3);
System.out.println("out37 = " + out37);
4.截取字符串
String str8 = "厦门;泉州;福州";
String out38 = (String) str8.subSequence(3,5);
System.out.println("out38 = " + out38);
String out39 = str8.substring(3);
System.out.println("out39 = " + out39);
String out40 = str8.substring(3,5);
System.out.println("out40 = " + out40);
5.字符串转换为char数组
String str9 = "厦门;泉州;福州";
char[] out41 = str9.toCharArray();
System.out.println("out41 = " + out41[0]);
6.字母大小写转换
String str10 = "FujianXiaMen";
String out42 = str10.toLowerCase();
System.out.println("out42 = " + out42);
String out43 = str10.toUpperCase();
System.out.println("out43 = " + out43);
7.删除字符串两端空格
String str11 = " FujianXiaMen ";
String out44 = str11.trim();
System.out.println("out44 = " + out44);
8.字符匹配
boolean out28 =str.matches("福建");
System.out.println("out28 = " + out28);
String str5 = "Fujian In China";
boolean out29 =str5.regionMatches(true,2,"Fujian",0,6);
System.out.println("out29 = " + out29);
boolean out30 =str5.regionMatches(2,"Fujian",0,6);
System.out.println("out30 = " + out30);
9.计算字符串长度
int out27 =str.length();
System.out.println("out27 = " + out27);
10.字符和字符串的位置索引
String str = "厦门在中国的福建";
//返回 char指定索引处的值
char out1 = str.charAt(3);
System.out.println("out1 = " + out1);
//返回指定索引处的字符(Unicode代码点)
int out2 = str.codePointAt(3);
System.out.println("out2 = " + out2);
//返回指定索引之前的字符(Unicode代码点)
int out3 = str.codePointBefore(3);
System.out.println("out3 = " + out3);
//返回String指定文本范围内的Unicode代码点数
int out4 = str.codePointCount(3,5);
System.out.println("out4 = " + out4);
//返回指定字符第一次出现的字符串内的索引
String str4="ABCdBC";
int out17 =str4.indexOf(66);
System.out.println("out17 = " + out17);
int out18 =str4.indexOf(66,2);
System.out.println("out18 = " + out18);
//返回指定子字符串第一次出现的字符串内的索引
int out19 =str.indexOf("中国");
System.out.println("out19 = " + out19);
int out20 =str.indexOf("中国",2);
System.out.println("out20 = " + out20);
//返回指定字符的最后一次出现的字符串中的索引
int out23 =str4.lastIndexOf(66);
System.out.println("out23 = " + out23);
int out24 =str4.lastIndexOf(66,2);
System.out.println("out24 = " + out24);
//返回指定子字符串第一次出现的字符串内的索引
int out25 =str.lastIndexOf("中国");
System.out.println("out25 = " + out25);
int out26 =str.lastIndexOf("中国",2);
System.out.println("out26 = " + out26);
11.判断字符串是否为空
boolean out22 =str.isEmpty();
System.out.println("out22 = " + out22);
12.字符串的哈希码
int out16 =str.hashCode();
System.out.println("out16 = " + out16);
13.返回字符串对象的规范表示
String out21 =str.intern();
System.out.println("out21 = " + out21);
14.字符串中的字符复制到目标字符数组
char[] out15 = new char[10];
String str3 = "厦门在中国的福建";
str3.getChars(0,8,out15,0);
System.out.println("out15 = " + out15[0]);
15.字符串转换为byte[]
byte[] out13 = "Abcdefg".getBytes();
System.out.println("out13 = " + out13[0]);
byte[] out14 = new byte[0];
try {
out14 = "Abcdefg".getBytes("GBK");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println("out14 = " + out14[0]);
16.字符串连接
String out7 = str.concat(",福州也在中国的福建");
System.out.println("out7 = " + out7);
17.字符串比较
//按字典顺序比较两个字符串
int out5 = str.compareTo("福州在中国的福建");
if(out5 ==0){
System.out.println("out5 = " + "两字符相等.");
}else {
System.out.println("out5 = " + "两字符不相等.");
}
//按字典顺序比较两个字符串,忽略病例差异
int out6 = str.compareToIgnoreCase("福州在中国的福建");
if(out6 ==0){
System.out.println("out6 = " + "两字符相等.");
}else {
System.out.println("out6 = " + "两字符不相等.");
}
//当且仅当此字符串包含指定的char值序列时才返回true
boolean out8 = str.contains("福建");
System.out.println("out8 = " + out8);
//将此字符串与指定的CharSequence进行比对
boolean out9 = str.contentEquals("福建");
System.out.println("out9 = " + out9);
//将此字符串与指定对象进行比较
boolean out11 = str.equals("福建");
System.out.println("out11 = " + out11);
//将此 String与其他 String比
String str2 = "AbcdEfG";
boolean out12 = str2.equalsIgnoreCase("aBCdEfG");
System.out.println("out12 = " + out12);
以上,感谢。