string上的split()方法不起作用

时间:2014-04-03 07:05:08

标签: java string split

我想分割一个包含+的字符串,我在String对象上使用split(): 但它显示例外。

class StringTest 
{
    public static void main(String[] args) 
    {
        String val= "004+0345564";
        String arr[]=val.split("+");
        for(int i=0;i<=arr.length-1;i++){
            System.out.println(arr[i]);
        }
    }
}

7 个答案:

答案 0 :(得分:6)

String.split正则表达式作为参数。正则表达式中的+具有特殊含义。 (之前的一个或多个)。

如果您想要文字+,则需要使用\\+ 转义它。 (正则表达式语法是\+,但你需要使用第二个反斜杠在Java中转义反斜杠。)

答案 1 :(得分:3)

String arr[] = val.split("\\+");

而不是

String arr[]=val.split("+");

答案 2 :(得分:1)

Split采用正则表达式。您需要转义+

String arr[]=val.split("\\+")

答案 3 :(得分:1)

String arr[] = val.split("\\+");

答案 4 :(得分:1)

试试这个

class StringTest 
{
    public static void main(String[] args) 
    {
        String val= "004+0345564";
        String arr[]=val.split("\\+");
        for(int i=0;i<=arr.length-1;i++){
            System.out.println(arr[i]);
        }
    }
}

答案 5 :(得分:1)

您需要使用

    String arr[] = val.split("\\+");

而不是

    String arr[]=val.split("+");

split方法将regex作为输入。您也可以参考String#split进行确认。

答案 6 :(得分:0)

实际语法是

public String[] split(String regex, int limit)

//or

public String[] split(String regex)

所以请使用,低于一个。

String arr[] = val.split("\\+",0);