Java之String

  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

 

posted @ 2019-05-26 16:07  戴上面具去跳舞  阅读(383)  评论(0编辑  收藏  举报