java字符串拆分正则表达式

时间:2012-05-16 18:29:34

标签: java regex

我有一个字符串(1, 2, 3, 4),我想将整数解析成一个数组。

我可以使用split(",\\s")拆分除开始和结束元素之外的所有元素。我的问题是如何修改它,以便忽略开始和结束括号?

4 个答案:

答案 0 :(得分:3)

通过匹配数字而不是匹配它们之间的空格,您可以获得更好的服务。使用

final Matcher m = Pattern.compile("\\d+").matcher("(1, 2, 3, 4)");
while (m.find()) System.out.println(Integer.parseInt(m.group()));

答案 1 :(得分:2)

使用2个正则表达式:首先删除括号,然后再拆分:

Pattern p = Pattern.compile("\\((.*)\\)");
Matcher m = p.matcher(str);
if (m.find()) {
    String[] elements = m.group(1).split("\\s*,\\s*");
}

并注意我对你的分裂正则表达式的修改。它更灵活,更安全。

答案 2 :(得分:1)

您可以使用substring()然后拆分(“,”)

  String s = "(1,2,3,4)";
  String s1 = s.substring(1, s.length()-2);//index should be 1 to length-2
  System.out.println(s1);

  String[] ss = s1.split(",");
  for(String t : ss){
    System.out.println(t);
  }

答案 3 :(得分:0)

将其更改为使用split("[^(),\\s]")