我有一个字符串(1, 2, 3, 4)
,我想将整数解析成一个数组。
我可以使用split(",\\s")
拆分除开始和结束元素之外的所有元素。我的问题是如何修改它,以便忽略开始和结束括号?
答案 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]")
。