String类常用方法
String类是保存字符串常量的。每次更新都需要重新开辟空间,效率较低。因此,java设计者还提供了StringBuilder 和 StringBuffer 来增强String的功能。
注意:String是final类,不能被继承;
String类图
String常用方法
equals
区分大小写,判断内容是否相等
public class Main {
public static void main(String[] args) {
String str1 = "hello";
String str2 = "world";
String str3 = "world";
String str4 = "World";
System.out.println(str1.equals(str2));//比较str1和str2的内容
System.out.println(str2.equals(str3));//比较str2和str3的内容
System.out.println(str3.equals(str4));//比较str3和str4的内容
}
}
运行结果:
false
true
false
只有字符串中的内容一模一样时equals才会返回true
equalsIgnoreCase
忽略大小写的判断内容是否相等
public class Main {
public static void main(String[] args) {
String str3 = "world";
String str4 = "World";
System.out.println(str3.equalsIgnoreCase(str4));
}
}
输出:true
length
获取字符的个数,字符串的长度
public class Main {
public static void main(String[] args) {
String str1 = "hello";
System.out.println(str1.length());//输出str1 的长度;
}
}
输出:5
indexOf
获取字符再字符串中第一次出现的索引,索引从0开始,如果找不到,返回-1
public class Main {
public static void main(String[] args) {
String str1 = "hello";
System.out.println(str1.indexOf('e'));//在字符串中查找e,返回索引;
System.out.println(str1.indexOf('l'));//在字符串中查找l,返回索引;
System.out.println(str1.indexOf('a'));//在字符串中查找a,返回索引;
}
}
输出:
1
2
-1
下标从0开始,返回第一次出现的索引,如果在字符串中没有找到要查询的字符,返回-1。
System.out.println(str1.indexOf("he"))//在字符串中查找子串he出现的位置,如果没有则返回-1
lastIndexOf
获取字符在字符串中最后一次出现的索引,索引从0开始,如果找不到,返回-1
System.out.println(str1.lastIndexOf('l'));//在字符串中查找l,返回最后一次出现的索引;
输出:3
在字符串“hello”中最后一次出现的索引是3,所以返回数字3。
substring
截取指定范围的子串
String str = "hello,everyone!";
System.out.println(str.substring(6));//从索引6开始截取一直到末尾;
System.out.println(str.substring(0,5));//从索引0开始,截取到第5个字符;
System.out.println(str.substring(2,5));//从索引2开始,截取到第5个字符;
//结果输出:
everyone!
hello
llo
charAt
获取某索引处的字符
String str1 = "hello,";
System.out.println(str1.charAt(2));
//输出l
toUpperCase
小写转大写
String str1 = "hello";
System.out.println(str1.toUpperCase());//输出HELLO
toLowerCase
大写转小写
String str1 = "HELLO";
System.out.println(str1.toUpperCase());//输出hello
concat
拼接字符串
String str1 = "hello,";
String str2 = "world";
System.out.println(str1.concat(str2));
//输出hello,world
replace
替换字符串中的字符
注意:替换后对原字符串没有影响,原字符串的内容不变
String str1 = "hello,";
System.out.println(str1.replace(',','!'));//前面一个参数是原字符,后一个是新字符
//输出hello!
System.out.println(str1.replace(",",",world"));//字符串替换,将","替换为",world"
//输出hello,world
split
分割字符串
String s = "落霞与孤鹜齐飞,秋水共长天一色。";
String[] str7 = s.split(",");//用字符串数组接收分割后的子串
System.out.println(str7[0]);
System.out.println(str7[1]);
//输出:
//落霞与孤鹜齐飞
//秋水共长天一色
compareTo
比较两个字符串大小
如果前者大,返回整数,如果前者小,返回负数
String str1 = "world";
String str2 = "hello";
System.out.println(str3.compareTo(str4));
//输出:15
//w的ASCII码大于h,(int)w-(int)h = 15,所以返回15;
//从第一个开始比较,一旦遇到不一样的字符就开始比较,比较完后直接返回结果.
//如果完全相等,返回0
toCharArray
将字符串转换为字符数组
String str1 = "hello";
char []str8 = str1.toCharArray();//字符数组接收字符
for(int i = 0;i < str8.length;i++){
System.out.println(str8[i]);
}
format
格式化字符串(类似于C语言的printf)
String name = "小明";
int age = 18;
String into = String.format("%s %d",name,age);//定义一个字符串接收格式化之后的字符串
System.out.println(into);
//输出:小明 18
%d 对应整数变量
%s 对应字符串变量
%c 对应字符变量
%f 对应浮点型变量