首页 > 代码库 > 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中的方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。