字符串常用方法

来源:互联网 发布:美国生活水平知乎 编辑:程序博客网 时间:2024/06/05 20:12

1、length()  字符串长度

2、charAt(int index);      返回对应索引的字符,返回char类型

3、getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)     截取多个字符

String s1 = "abcdefghijklmnopqrstuvwxyz";

      char[] ch =new char[10];

      s1.getChars(0, 9, ch, 1);

System.out.println(ch);//"abcdefghi"

4、getBytes()    替代getChars的一种方法

5、toCharArray()    将字符串转换为字符数组

6、equals和equalsIgnoreCase()

二者都是比较字符串是否相等,equals是比较字符串是否具有相同的字符和长度,区分大小写;而equalsIgnoreCase()不区分大小写

7、regionMatches() 

2个构造方法:

regionMatches(int startIndex,String str2,intstr2StartIndex,int numChars)
regionMatches(boolean ignoreCase,int startIndex,String str2,intstr2StartIndex,int numChars)

第一个参数ignoreCase表示是否区分大小写,

String s1 = "abcd3efbbb";

      String s2 = "abcd2efaaa";

      boolean b=s2.regionMatches(true, 0, s1, 0, 4);

System.out.println(b);//输出:true

8、startsWith()和endsWith()

判断字符串是否以相应的字符串开始或结尾

9、equals和==

equals是指字符串对象中的字符相等,而==是指2个对象引用同一个实例:

              String s1="nihao";

      Strings2=newString("nihao");

      System.out.println(s1.equals(s2));

      System.out.println(s1==s2);

输出:

              true

false

10、         compareto()

返回前后两个字符串的asc码差值:如果两个字符串首字母不同,则返回首字母的asc码差值,如果首字母相同,则继续比较下一个字符,返回不同字符的asc码差值,如果参与比较的字符串完全一样,字符串长度不一样,则返回字符串长度的差。

11、         indexOf()和lastIndexOf()

indexOf()查找字符或者子串第一次出现的地方。
lastIndexOf() 查找字符或者子串是后一次出现的地方。

12、         substring()

它有两种形式:

第一种是:String substring(int startIndex)        //从开始位置截取到最后

第二种是:String substring(intstartIndex,int endIndex)              //从开始位置截取到结束位置,不包括endindex位置的元素

13、         concat() 

连接两个字符串

14、         replace()和replaceAll()

replace(oldChar, newChar)替换字符

replaceAll(regex,replacement)替换字符串

replaceFirst()只替换第一次出现的字符串

二者比较:

replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换。

replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\\d","*")把一个字符串所有的数字字符都换成星号;

相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串;

不同点:replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\\d", "*"),而replace则不会,replace("\\d","*")就是替换"\\d"的字符串,而不会解析为正则。

另外还有一个不同点:“\”在Java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\") ;只打印出一个"\"。但是“\”也是正则表达式中的转义字符,需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\,因此用replaceAll替换“\”为"\\",就要用replaceAll("\\\\","\\\\\\\\"),而replace则replace("\\","\\\\")。

如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串。

用例

a、 将多个空格替换为一个

String s = "aa    d   f ff  g "

      //“ +”是正则表达式,匹配一个或多个空格

        System.out.println(s.replaceAll(" +"," ")); 

        //replace只能把“ +”作为字符串处理,不能作为正则表达式

System.out.println(s.replace(" +","")); 

15、         valueOf()转换为字符串

String. valueOf()        将不同类型的值,转换为字符串,返回类型为String

16、         trim() 去掉两边的空格

17、         toLowerCase() 转换为小写,toUpperCase() 转换为大写

18、         contains(CharSequences)

判读字符串内是否包含字符序列:

String s1="heAlo world";

       System.out.println(s1.contains("ld"));