java的split方法怎么使用?java的split方法使用总结

阳光 2021-10-21 15:42:51 java常见问答 7876

在java中,有很多种方法是需要大家掌握的,只有掌握好,才能更好的进行开发,比如java的split方法,那java的split方法怎么使用?下面来我们就来给大家讲解一下java的split方法使用总结。

split 方法

将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

stringObj.split([separator,[limit]])

stringObj

必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。

separator

可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽

略该选项,返回包含整个字符串的单一元素数组。

limit

可选项。该值用来限制返回数组中的元素个数。

说明:

split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。separator 不作为任何数组元素的部分返回。

举例:

public class SplitDemo
{
    public static String[] ss = new String[20];
    public SplitDemo()
    {
        String s = "The rain in Spain falls mainly in the plain.";
        // 在每个空格字符处进行分解。
        ss = s.split(" ");
    }
    public static void main(String[] args)
    {
        SplitDemo demo = new SplitDemo();
        for (int i = 0; i < ss.length; i++)
            System.out.println(ss[i]);
    }
}

程序结果:

The

rain

in

Spain

falls

mainly

in

the

plain.

public string[] split(string regex)

这里的参数的名称是 regex ,也就是 regular expression (正则表达式)。这个参数并不是一个简单的分割用的字符,而是一个正则表达式

public string[] split(string regex, int limit)
{
    return pattern.compile(regex)
        .split(this, limit);
}

split 的实现直接调用的 matcher 类的 split 的方法。读者已经知道,“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。

只要将

String[] names = value.split(".");

改为

String[] names = value.split("//.");

就可以了。

在java.lang包中有String.split()方法,返回是一个数组

我在应用中用到一些,给大家总结一下,仅供大家参考:

1、如果用“.”作为分隔的话,必须是如下写法,String.split("\."),这样才能正确的分隔开,不能用String.split(".");

2、如果用“|”作为分隔的话,必须是如下写法,String.split("\|"),这样才能正确的分隔开,不能用String.split("|");

“.”和“|”都是转义字符,必须得加"\";

3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");

使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。

我们看jdk doc中说明

public String[] split(String regex)
Splits this string around matches of the given regular expression.
参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码用竖线 | 分隔字符串,你将得不到预期的结果
String[] aa = "aaa|bbb|ccc".split("|");
//String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果
for (int i = 0 ; i<aa.length p="" {<="">
System.out.println("--"+aa[i]);
}

用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。

String[] aa = "aaa*bbb*ccc".split("*");
//String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果
for (int i = 0; i < aa.length p = ""
    {
        <= "" >
        System.out.println("--" + aa[i]);
    }

显然, + 不是有效的模式匹配规则表达式,用"\" "\+"转义后即可得到正确的结果。

"|" 分隔串时虽然能够执行,但是却不是预期的目的,"\|"转义后即可得到正确的结果。

还有如果想在串中使用"\"字符,则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\bbbb",如果要分隔就应该这样才能得到正确结果,

String[] aa = "aaa\bbb\bccc".split("\\");

split 的实现直接调用的 matcher 类的 split 的方法。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。在正则表达式中有特殊的含义的字符,我们使用的时候必须进行转义,示例:

public class StringSplit
{
    public static void main(String[] args)
    {
        String value = "192.168.128.33";
        // 注意要加\\,要不出不来,yeah
        String[] names = value.split("\\.");
        for (int i = 0; i < names.length; i++)
        {
            System.out.println(names[i]);
        }
    }
}

split分隔符总结

1.字符"|","*","+"都得加上转义字符,前面加上"\"。

2.而如果是"\",那么就得写成"\\"。

3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。

比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。

public class StringSplit
{
    public static void main(String[] args)
    {
        String str1 = "1,2,3,4,5,6";
        String[] s1 = str1.split(",");
        for (int i = 0; i < s1.length; i++)
        {
            < p = "" >
                System.out.print(s1[i] + " ");
        }
        System.out.println("\n-------------");
        String str2 = "192.168.128.11";
        String[] s2 = str2.split("\\.");
        for (int j = 0; j < s2.length; j++)
        {
            < p = "" >
                System.out.print(s2[j] + " ");
        }
        System.out.println("\n-----------------");
        String str3 = "aaa|bbb|ccc|ddd";
        //String[] s3 = str3.split("|"); //得到错误的结果
        String[] s3 = str3.split("\\|");
        for (int k = 0; k < s3.length; k++) < p = "" >
        {
            System.out.print(s3[k] + " ");
        }
        System.out.println("\n-----------------");
        String str4 = "aaa*bbb*ccc";
        //String[] s4 = str4.split("*"); 得到错误的结果
        String[] s4 = str4.split("\\*");
        for (int n = 0; n < s4.length; n++)
        {
            < p = "" >
                System.out.print(s4[n] + " ");
        }
    }
}

java的split方法使用总结就是以上这些了,split 方法是将一个字符串分割为子字符串,然后将结果作为字符串数组返回,作为程序员我们一定要掌握它的使用方法哦!最后大家如果想要了解更多java常见问题知识,敬请关注奇Q工具网。

推荐阅读:

java工程师证书报考条件有哪些?Java工程师需要考什么证书?

json解析的本地工具有哪些?json文件解析工具

java图片怎么导入?java图片导入方法