Java之String
程序员文章站
2022-04-23 09:10:45
String类是Java类库中提供的一个预定义类,用来操作字符串。因为最近面试总会问到,特在此归纳总结。 String是不可变的,因此用“+”进行字符串拼接的时候,实际上新建了一个字符串对象。String被修饰为final,所以是不可继承的。 以下是String常用的方法。 获取子串,substri ......
string类是java类库中提供的一个预定义类,用来操作字符串。因为最近面试总会问到,特在此归纳总结。
string是不可变的,因此用“+”进行字符串拼接的时候,实际上新建了一个字符串对象。string被修饰为final,所以是不可继承的。
以下是string常用的方法。
获取子串,substring(begin,end)
string s1 = "javajava"; string s = s1.substring(0,3); system.out.println(s);//得到s的值为jav.
将字符串转换为字符数组,tochararray()。
string s1 = "javajava"; char[] s = s1.tochararray(); for(int i = 0;i < s.length;i++) { system.out.print(s[i]); }
通过字符数组创建字符串。
char[] cs = new char[]{'c','+','+'}; string s = new string(cs); system.out.print(s);//输出c++
获取字符,charat(index)
string s1 = "javajava"; char c = s1.charat(2); system.out.println(c);//得到c的值为v
根据特定字符分割字符串,split(s),作为分隔符的字符不在结果中。
string s = "java,python"; string[] subs1 = s.split(","); for(string sub : subs1) { system.out.println(sub); }
去掉收尾空格,trim()
string s = " java,python "; string s1 = s.trim(); system.out.println(s);//有空格 system.out.println(s1);//无空格
所有字母改为小写字母,tolowercase()。所有字母改为大写字母,touppercase()。
返回字符串或字符首次出现的位置,indexof(s),返回字符串或字符最后出现的位置,lastindexof(),从位置index开始,字符或字符串出现的位置,indexof(s,index).
string s = "java,c++,go,python"; system.out.println(s.indexof(','));//4 system.out.println(s.indexof("go"));//9 system.out.println(s.indexof(",",5));//8 system.out.println(s.lastindexof(","));//11
替换字符串,replace()和replaceall()都可以替换所有的,replacefirst()替换第一次出现的。
string s = "java,c++,java,python"; string s2 = s.replace("java", "go"); system.out.println(s2);//go,c++,go,python string s3 = s.replaceall("java", "go"); system.out.println(s3);//go,c++,go,python string s4 = s.replacefirst("java", "go"); system.out.println(s4);//go,c++,java,python
比较两个字符串是否相等的方式是equals,忽略大小写为equalsignorecase,==比较的是两个字符串是否放在同一个位置上。前文已经说过,string是不可变的,不可变的优点之一就是字符串共享,假设已经有一个字符串为s1="java",这时建立一个字符串s3 = "java",判别s1 == s3的结果就是true,因为编译器发现已经有了一个“java”,就不会再新建,而是直接拿来使用。
string s1 = "java"; string s2 = new string(s1); string s3 = "java"; system.out.println(s1.equals(s2));//true system.out.println(s1 == s2);//false system.out.println(s1 == s3);//true
是否以子字符串开始或者结束,startswith(),endswith()
string s1 = "java"; system.out.println(s1.startswith("ja"));//true system.out.println(s1.endswith("va"));//true