欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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