最常见:
s.length()s.charAt(i)s.toLowerCase()s.substring()s.split(" ")s.indexOf()| 方法 | 作用 | 示例 |
|---|---|---|
length() | 获取字符串长度 | s.length() |
charAt(i) | 获取第i个字符 | s.charAt(0) |
equals() | 判断内容是否相等 | a.equals(b) |
equalsIgnoreCase() | 忽略大小写比较 | a.equalsIgnoreCase(b) |
toLowerCase() | 转小写 | s.toLowerCase() |
toUpperCase() | 转大写 | s.toUpperCase() |
contains() | 判断是否包含 | s.contains("java") |
indexOf() | 查找第一次出现的位置 | s.indexOf("a") |
substring() | 截取字符串 | s.substring(0, 3) |
trim() | 去掉首尾空格 | s.trim() |
replace() | 替换内容 | s.replace("a", "b") |
split() | 分割字符串 | s.split(" ") |
startsWith() | 判断开头 | s.startsWith("http") |
endsWith() | 判断结尾 | s.endsWith(".jpg") |
toCharArray() | 转字符数组 | s.toCharArray() |
在 Java 里,字符串通常用String表示。比如:
Strings="Hello Java";字符串在机试、业务开发里都非常常见,比如:
Strings=sc.nextLine();charc=s.charAt(0);下面总结一些最常用、最实用的字符串操作方法。
一、获取字符串长度:length()
作用
获取字符串有多少个字符。
Strings="hello";System.out.println(s.length());输出:
5常见场景
遍历字符串时经常用:
for(inti=0;i<s.length();i++){System.out.println(s.charAt(i));}这里的意思是:从第0个字符开始,一个一个访问到最后一个字符。
二、获取指定位置字符:charAt(index)
作用
获取字符串中某个位置的字符。
Strings="hello";charc=s.charAt(0);System.out.println(c);输出:
hJava 字符串下标从0开始:
h e l l o 0 1 2 3 4所以:
s.charAt(0);// 'h's.charAt(1);// 'e's.charAt(4);// 'o'常见场景
题目中这一行:
charc=sc.nextLine().charAt(0);意思是:
读取一行字符串,然后取这一行的第一个字符。例如输入:
asc.nextLine()读到的是"a",
.charAt(0)取出的是字符'a'。
三、判断字符串是否相等:equals()
作用
判断两个字符串内容是否一样。
Stringa="java";Stringb="java";System.out.println(a.equals(b));输出:
true注意
字符串比较不要用==,而是用equals()。
错误写法:
if(a==b){System.out.println("相等");}推荐写法:
if(a.equals(b)){System.out.println("相等");}因为==比较的是地址,equals()比较的是内容。
四、忽略大小写比较:equalsIgnoreCase()
作用
比较两个字符串时,不区分大小写。
Stringa="Java";Stringb="java";System.out.println(a.equalsIgnoreCase(b));输出:
true常见场景
比如用户输入YES、yes、Yes都算同意:
Stringinput="YES";if(input.equalsIgnoreCase("yes")){System.out.println("用户同意");}五、转换大小写:toLowerCase()和toUpperCase()
1. 转小写:toLowerCase()
Strings="Hello Java";System.out.println(s.toLowerCase());输出:
hello java2. 转大写:toUpperCase()
Strings="Hello Java";System.out.println(s.toUpperCase());输出:
HELLO JAVA常见场景
做大小写不敏感统计时很常用:
Strings="AaBbCc";s=s.toLowerCase();charc='a';intcount=0;for(inti=0;i<s.length();i++){if(s.charAt(i)==c){count++;}}System.out.println(count);输出:
2因为'A'转成小写后也是'a'。
六、判断是否包含某个内容:contains()
作用
判断字符串中是否包含某个子字符串。
Strings="Hello Java";System.out.println(s.contains("Java"));System.out.println(s.contains("Python"));输出:
true false常见场景
判断一句话里有没有某个关键词:
Stringtext="我正在学习Java";if(text.contains("Java")){System.out.println("包含 Java");}七、查找字符或字符串位置:indexOf()
作用
查找某个字符或字符串第一次出现的位置。
Strings="hello";System.out.println(s.indexOf("e"));System.out.println(s.indexOf("l"));System.out.println(s.indexOf("x"));输出:
1 2 -1如果找不到,就返回-1。
常见场景
判断某个字符是否出现过:
Strings="hello";if(s.indexOf("e")!=-1){System.out.println("出现过 e");}八、截取字符串:substring()
1. 从某个位置截取到最后
Strings="HelloJava";System.out.println(s.substring(5));输出:
Java意思是从下标5开始,一直截取到最后。
2. 截取指定区间
Strings="HelloJava";System.out.println(s.substring(0,5));输出:
Hello注意:
substring(0,5)表示截取下标[0, 5)的内容。
也就是包含0,不包含5。
H e l l o J a v a 0 1 2 3 4 5 6 7 8所以截取结果是:
Hello九、去掉首尾空格:trim()
作用
去掉字符串开头和结尾的空格。
Strings=" hello java ";System.out.println(s.trim());输出:
hello java注意,trim()只去掉首尾空格,不会去掉中间空格。
Strings=" hello java ";System.out.println(s.trim());结果是:
hello java中间的空格还在。
常见场景
处理用户输入时常用:
Stringinput=sc.nextLine().trim();这样可以避免用户前后多输入空格导致判断错误。
十、替换字符串:replace()
作用
把字符串中的某些内容替换成其他内容。
Strings="hello java";System.out.println(s.replace("java","world"));输出:
hello world替换字符
Strings="a-b-c";System.out.println(s.replace("-",""));输出:
abc意思是把所有-替换成空字符串。
十一、分割字符串:split()
作用
按照指定符号把字符串切开。
Strings="apple,banana,orange";String[]arr=s.split(",");System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);输出:
apple banana orange常见场景
处理一行输入:
10 20 30可以这样写:
Stringline=sc.nextLine();String[]arr=line.split(" ");inta=Integer.parseInt(arr[0]);intb=Integer.parseInt(arr[1]);intc=Integer.parseInt(arr[2]);十二、判断开头和结尾:startsWith()/endsWith()
1. 判断是否以某个内容开头
Strings="HelloJava";System.out.println(s.startsWith("Hello"));输出:
true2. 判断是否以某个内容结尾
Strings="HelloJava";System.out.println(s.endsWith("Java"));输出:
true常见场景
判断文件类型:
StringfileName="test.jpg";if(fileName.endsWith(".jpg")){System.out.println("这是图片");}十三、字符串转字符数组:toCharArray()
作用
把字符串转换成字符数组。
Strings="abc";char[]arr=s.toCharArray();System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);输出:
a b c常见场景
需要频繁遍历或修改字符时,可以转成字符数组:
Strings="abc";char[]arr=s.toCharArray();for(charch:arr){System.out.println(ch);}输出:
a b c十四、字符串和数字互转
1. 字符串转整数
Strings="123";intnum=Integer.parseInt(s);System.out.println(num+1);输出:
1242. 整数转字符串
intnum=123;Strings=String.valueOf(num);System.out.println(s);输出:
123也可以这样写:
Strings=num+"";不过更推荐:
String.valueOf(num);十五、判断字符类型:Character工具类
处理单个字符时,经常会用Character。
1. 判断是否是字母
Character.isLetter('a');// trueCharacter.isLetter('A');// trueCharacter.isLetter('1');// false2. 判断是否是数字
Character.isDigit('1');// trueCharacter.isDigit('a');// false3. 转小写
Character.toLowerCase('A');// 'a'4. 转大写
Character.toUpperCase('a');// 'A'你截图里的代码:
if(Character.isLetter(c)){c=Character.toLowerCase(c);}意思是:
如果 c 是字母,就先把它转成小写,方便后面不区分大小写统计。