首页 > 代码库 > String中的方法

String中的方法

这里只是总结一些我觉得有用可能会用到的;

详细api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

1.str.getChars(int strBegin,  int strEnd,  char[] dst,  int  dstBegin):将str的一部分(下标从strBegin到strEnd-1)复制到字符数组dst从dstBegin开始到des[dstBegin+(复制的长度)]将会覆盖原来的字符。。注意控制下标。。

        String s1="abcdefgh";
        char[] s2={‘1‘,‘2‘,‘3‘};
        s1.getChars(1, 3, s2, 0);
        System.out.print(s2);

//输出"bc3"

 

        String s1="abcdefgh";
        char[] s2={‘1‘,‘2‘,‘3‘};
        s1.getChars(1, 3, s2, 1);
        System.out.print(s2);
//输出"1bc"
          

2.str.equals(Object obj):将str和obj比较,当且仅当obj不为null,并且与str是相同字符序列,返回true,**覆写了Object类equals()方法**

3.str.equalsIgnoreCase(String anotherString):不考虑大小写比较字符串是否相同

4.s1.compareTo(String s2):按序一次比较对应位置的字符是否相等,不等返回他们ASCII码的差,相等继续比较下一位,若其中一个到了最后一位并且另一个没到,返回s1.length()-s2.length();

     String s1="abcdefgh";
        String s2="abcde";
        String s3="c";
        System.out.println(s1.compareTo(s2));//3:s1.length()-s2.length()    8-5=3
        System.out.println(s1.compareTo(s3));//-2:‘a‘-‘c‘
        System.out.println(s3.compareTo(s1));//2:‘c‘-‘a‘

5.s1.compareToIgnoreCase(String   s2):忽略大小写,其他用法同compareTo();

     String s1="abcdefgh";
        String s2="Abcde";
        String s3="C";
        System.out.println(s1.compareToIgnoreCase(s2));//3:s1.length()-s2.length()    8-5=3
        System.out.println(s1.compareToIgnoreCase(s3));//-2:‘a‘-‘c‘
        System.out.println(s3.compareToIgnoreCase(s1));//2:‘c‘-‘a‘

6.s1.startsWith(String prefix,  int toffset),    s1.startsWith(String prefix):s1是否以指定前缀prefix开始,toffset是偏移量,从该位置开始的子串。。。

        String s1="abcdefgh";
        System.out.println(s1.startsWith("c",2 ));//true
        System.out.println(s1.startsWith("cd",2 ));//true
        System.out.println(s1.startsWith("cde",2 ));//true
        System.out.println(s1.startsWith("ce",2 ));//false
        System.out.println(s1.startsWith("a"));//true
        System.out.println(s1.startsWith("ab"));//true
        System.out.println(s1.startsWith("b"));//false        

7.s1.indexOf(int ch),s1.indexOf(int ch,int fromIndex), s1.indexOf(String s2), s1.indexOf(String  s2, int fromIndex)返回s2在s1中第一次出现位置的index,,ch代表字符的ASCII码

        String s1="abcdefga";
        System.out.println(s1.indexOf(97));//97是‘a‘  返回0
        System.out.println(s1.indexOf(98));//98是‘b‘  返回1
        System.out.println(s1.indexOf(99));//99是‘c‘  返回2
        System.out.println(s1.indexOf(105));//105是‘i’,,,没出现
        System.out.println(s1.indexOf("d"));//返回3
        System.out.println(s1.indexOf("a",7));//返回7        

8.s1.subString(int beginIndex).    s1.subString(int beginIndex,  int endIndex);截取字符串,注意“前闭后开”,【beginIndex,endIndex)

9.s1.replace(char oldChar,  char  newChar):代替所有   s1.replaceAll(Strng regex,  String replacement) :第一个参数是正则表达式,关于正则我后面会专门总结一章。。。replaceFirst(String regex,  String  replacement)

     String s1="abcdefga";
        System.out.println(s1.replace(‘a‘, ‘d‘));//  "dbcdefgd"
        System.out.println(s1.replace("ab", "#"));//   "#cdefga"
        System.out.println(s1.replaceAll("[a-z]", "#"));//   "########"

 

10.s1.matches(Srting regex):返回s1是否匹配此正则式   

11.s1.split(String regex):返回的是一个字符串数组,,,参数是正则!!!

 

    String s1="1a2b3c4d5e6f7g8a";
        String[] res=s1.split("[a-z]");
        for(String item:res){
            System.out.println(item);
        }
        //res={"1","2","3","4","5","6","7","8"}

 

12.s1.format();  这里有一篇总结不错 http://blog.csdn.net/lonely_fireworks/article/details/7962171,有两个方法,format(String format, Object ..args):可以实现类似c语言里的格式化,主要记几个 %s---字符串  %d---十进制   %x---十六进制 %o----八进制  %f----浮点型。。注意有两种使用方式,,System.out.println(String.format("%s",100))和System.out.printf("%s  %n",100);更有用的是可以指定位数,,("%+d",15):+15   ("%-d",15):左对齐15  ("%.3f",9.0):9.000

 System.out.println(String.format("%f", 100.0));//100.000000默认六位
    System.out.printf("%f %n", 100.0);    //100.000000

 

13.s.copyValueOf(char[] data,  int offset,  int count)    s.copyValueOf(char[]  data):  貌似就是截取字符串。。

 

 

String中的方法