Java中常用函数汇总

来源:互联网 发布:酉阳县农村淘宝 编辑:程序博客网 时间:2024/06/07 08:30

字符串相关函数


compareTo() 与 compareToIgnoreCase()比较函数

  • compare 方法返回的是前后两个字符串对应的ASCII码的差值;
  • compareToIgnoreCase 是忽略大小写再作比较。
    String m = "ab";    Stirng n = "ab";    String o = "AB";

m与n相同,则m.compareTo(n)值为0
m与o只是大小写不同,则m.compareToIgnoreCase(o)值为0,而m.compareTo(n)值为32,这里是a与A的ASCII的码值做比较,a对应的码值为97,A的为65,这样就不难理解了。
若m与n的位数相同,如m为abcd,n为abdf,则m与n则从第一次出现不匹配的位置形如比较ASCII值,这里就是c与d的比较,c-d=-1
若m与n的位数不相同,如m为ab,n为abcdef,m与n都有相同的前缀ab,则m.compareTo(n)比较的是值就是两个字符串的位数差,2-6=-4
如果与Object作比较,要先转化为字符串再比较。如m.compareTo(object.toString)


regionMatches()区域匹配函数

这个方法是比较两个字符串特定区域的内容是否一样,返回boolean类型。
下面的实例是比较str1中的Hellostr2中的hellostr1.regionMatches(13, str2, 14, 5)中第一个参数13是指从str1的索引为13的字母开始匹配,第三个参数14str2从索引为14的字母开始与str1开始匹配,第四个参数5指匹配字符的长度。str1.regionMatches(true, 13, str2, 14, 5)中第一个参数true指不区分大小写。

public class TestStringRegionMatches {    public static void main(String[] args) {        String str1 = "Hello Wrold, Hello China.";        String str2 = "I con't spell hello";        //             0123456789012345        boolean b1 = str1.regionMatches(13, str2, 14, 5);        boolean b2 = str1.regionMatches(true, 13, str2, 14, 5);        System.out.println(b1);        System.out.println(b2);         }}

运行结果如下

falsetrue

indexOf()与lastIndexOf()索引函数

indexOf()这个方法,查找的是特定字符串第一次出现位置的索引,返回的是int类型,如果查找的结果不存在,则返回-1

public class TestStingIndexOf {    public static void main(String[] args) {        String str = "Hello Wrold, Hello China, Hello Beijing.";        int index = str.indexOf("China");        if (index==-1) {            System.out.println("查找的字符不存在");        } else {            System.out.println("index的值为:" + index);        }    }}

得到的值为19,如果要查找的值为Hello,则结果值会为0,因为只返回第一次匹配上的索引。
lastIndexOf()这个方法是在字符串中查找第一次出现某个特定字符串的位置,方向是从后向前,找到之后则返回特定字符的索引,找不到匹配的字符串则返回-1

String str = "Hello Wrold. Hello MSDN.";int index = str.lastIndexOf("Hello");if (index==-1){    System.out.println("没有找到");} else {    System.out.println("index的值为:" + index);}

上面程序查找Hello最后一次出现的位置,就是HelloH的位置,index的值为13。


subString()截取函数

subString(0,n) 前闭后开,即包含0,不包含n


replace(), replaceFirst(), replaceAll()替换函数

根据一个实例来比较这三个方法的不同

public class TestReplaceArray {    public static void main(String[] args) {        String str = "Hello World, Hello China, Hello Beijing, Hello Ncl.";        System.out.println(str.replace("He", "Me"));        System.out.println(str.replace("H\\w{1}", "Me"));        System.out.println(str.replaceFirst("He", "Me"));        System.out.println(str.replaceFirst("H\\w{1}", "Me"));        System.out.println(str.replaceAll("He", "Me"));        System.out.println(str.replaceAll("H\\w{1}", "Me"));    }}

运行结果如下

Mello World, Mello China, Mello Beijing, Mello Ncl.Hello World, Hello China, Hello Beijing, Hello Ncl.Mello World, Hello China, Hello Beijing, Hello Ncl.Mello World, Hello China, Hello Beijing, Hello Ncl.Mello World, Mello China, Mello Beijing, Mello Ncl.Mello World, Mello China, Mello Beijing, Mello Ncl.
由上可知,replace()是全局替换,只支付匹配字符串替换,不支持正则表达式;replaceFirst(),既支持字符串替换,也支持正则表达式替换,但只替换第一次出现的字符串;replaceAll(),既支持字符串替换,了支持正则表达式替换,是全局替换。

reverse()反转函数

该方法调用将使 StringBuffer对象的值反转。

public class Test {    public static void main(String args[]) {       StringBuffer buffer = new StringBuffer("Hello World.");       buffer.reverse();       System.out.println(buffer);   }  }

运行结果如下

.dlorW olleH

split()字符串分割函数

直接上实例,split()括号内的界定符要用正则表达式写,split()方法分割完字符串返回的是一个字符串数组,可以用循环输出结果。

public class TestStringSplit {    public static void main(String[] args) {        String str = "blog.csdn.net";        String delimeter = "\\.";    // .在正则在可以匹配任意字符,这里要用转义符        String result[] = str.split(delimeter);        for (String x : result) {            System.out.println(x);        }    }}

输出结果如下

blogcsdnnet

toUpperCase()与toLowerCase()大小写转换函数

这个看实例就可以了

public class TestStringUpperAndLower {    public static void main(String[] args) {        String str = "Hello Wrold";        System.out.println("转换为大写:" + str.toUpperCase());        System.out.println("转换为小写:" + str.toLowerCase());    }}