zoukankan      html  css  js  c++  java
  • 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):  貌似就是截取字符串。。

     

  • 相关阅读:
    UITableView 排序、删除
    iOS中arc的设置
    dynamics ax 2009 distinct实现及数组集合
    将关系数据库映射到业务实体
    常见负载均衡实现
    ibatis经验
    百度贴吧10亿量级LAMP架构分享
    dynamics ax 2009 字段类似的表绑定界面注意
    [转]大型动态应用系统框架
    .net 发展历程
  • 原文地址:https://www.cnblogs.com/team42/p/6883599.html
Copyright © 2011-2022 走看看