String类
String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。String类对象创建后不能修改,这是因为字符串的值是存放在方法区的常量池里面,但是引用可以改变。
String的常用方法
1.length():长度,得出字符串的字符个数,返回值是int类型
private static void main1() {
String a="aB啊1?";
int b=a.length();
System.out.println(b);
}
运行结果:
5
2.str1.concat(str2):字符串拼接。
private static void main2() {
String a="好好学习",b="天天向上";
String c=a.concat(b);
System.out.println(c);
}
运行结果:
好好学习天天向上
3.charAt(index):返回指定索引处的字符,返回值是char类型,返回的指定位置的字符。
private static void main3() {
String a="好好学习天天向上";
char b=a.charAt(3);
System.out.println(b);
}
运行结果:
习
4.indexOf(str):返回指定字符串在此字符串中第一次出现处的索引,返回值是int类型
private static void main4() {
String a="abcdefg";
int b=a.indexOf("cd");
System.out.println(b);
}
运行结果:
2
变种:
private static void main5() {
String a = "abcdefgabcd";
//返回指定字符在此字符串中第一次出现处的索引
int a1 = a.indexOf('d');
//返回指定字符在此字符串中从指定位置后第一次出现处的索引。
int a2 = a.indexOf('c', 4);
//返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
int a3 = a.indexOf("fg", 2);
System.out.println(a1+"\t"+a2+"\t"+a3);
}
运行结果:
3 9 5
5.compareTo(str2) :比较两个字符串,对照ASCII 码表 从第一个字符进行减法运算,返回结果。如果前面几个字符一样,根据两个字符串的长度进行减法运算,返回减法结果,如果字符串一摸一样 返回的就是0。
private static void main6() {
String a="abcd",b="abcdef",c="abcd";
int x=a.compareTo(b);
int y=a.compareTo(c);
System.out.println(x+"\t"+y);
}
运行结果:
-2 0
6.equals()和equalslgnoreCase():它们都是比较字符串中的内容是否相同,但equals()是区分大小写的,而equalslgnoreCase()不区分大小写。返回值是布尔类型。
private static void main7() {
String a="abcd",b="ABCD";
boolean x=a.equals(b);
boolean y=a.equalsIgnoreCase(b);
System.out.println(x+"\t"+y);
}
运行结果:
false true
7.getBytes(): 把字符串转换为字节数组。
private static void main8() {
String a="abcde";
byte[] bytes = a.getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.print(bytes[i]+" ");
}
}
运行结果:
97 98 99 100 101
8.toCharArray():字符串转换为字符数组
private static void main9() {
String a="abcde";
char[] chars = a.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.print(chars[i]+" ");
}
}
运行结果:
a b c d e
9.substring(int start): 从指定位置开始截取字符串,默认到末尾。
substring(int start,int end): 从指定位置开始到指定位置结束截取字符串。
private static void main10() {
String a="abcdef";
//从指定位置(包含)开始截取字符串,默认到末尾
String b = a.substring(2);
//从指定位置(不包含)开始到指定位置(包含)结束截取字符串
String c = a.substring(2, 4);
System.out.println(b+"\t"+c);
}
运行结果:
cdef cd
10.toLowerCase()和toUpperCase():转换成大小写。
private static void main11() {
String a="abcde";
String b=a.toUpperCase();
String c=b.toLowerCase();
System.out.println(a+"\n"+b+"\n"+c);
}
运行结果:
abcde
ABCDE
abcde
11.trim():截取前后空白。
private static void main12() {
String a=" ab ";
String b=a.trim();
System.out.println(a+"\n"+b);
}
运行结果:
ab
ab
12.replace(char old,char new) 将指定字符进行互换
replace(String old,String new) 将指定字符串进行互换
private static void main13() {
String a="abcde";
//将指定字符进行互换
String b = a.replace('a', 'z');
//将指定字符串进行互换
String c = a.replace("ab", "zx");
System.out.println(b+"\n"+c);
}
运行结果:
zbcde
zxcde
13.split():分割
private static void main14() {
String a="aabbccdd";
String[] a1=a.split("b");
System.out.println(Arrays.toString(a1));
}
运行结果:
[aa, , ccdd]