在java中用多个字符拆分字符串

时间:2014-08-13 09:41:54

标签: java string replace split

有一个输入字符串:

String str="(1,6),(2,5),(7,10),(12,20)";

如何拆分字符串以便获得仅包含整数的整数数组? 即输出数组应为:arr={1,6,2,5,7,10,12,20};

4 个答案:

答案 0 :(得分:5)

您可以使用这样的正则表达式:

public static void main(String args[]) {
    String s = "(1,6),(2,5),(7,10),(12,20)";
    Pattern p = Pattern.compile("\\d+");
    Matcher m = p.matcher(s);
    List<Integer> li = new ArrayList<Integer>();

    while (m.find()) {
        System.out.println(m.group());
        li.add(Integer.parseInt(m.group())); 
    }
    // convert li to array here if you want.

}

O / P:

1
6
2
5
7
10
12
20

答案 1 :(得分:2)

怎么样:

str.replaceAll("\\(|\\)","").split(",");

答案 2 :(得分:2)

简单地按\D+分开。

你需要在字符串文字中转义反斜杠:.split("\\D+")

你将拥有空值,不要忘记处理它们;)

答案 3 :(得分:1)

方法是删除所有括号,然后用逗号分隔。

String str="(1,6),(2,5),(7,10),(12,20)";

//convert to string array of numbers
String[] numbersStr = str.replaceAll("\\(","").replaceAll("\\)","").split(",");

//convert to int array of numbers
int[] numbers = new int[numbersStr.length];
for(int i = 0; i < numbersStr.length; ++i)
   numbers[i] = Integer.parseInt(numbersStr[i]);

请注意,如果您的字符串中只有括号和逗号,则此选项有效,否则您需要在split之前用空字符串替换其他字符。

this answerthis answer的启发。