0
{
    ArrayList<String> node_array = new ArrayList<String>();
    String allValues[] = node.split("[(,)]");

    for(String value : allValues){
        node_array.add(value);
    }

节点是一个字符串,例如:(3,4,5,6,3)

出于某种原因,当我验证 arraylist 的内容时,拆分似乎留下了一些空间作为元素,特别是 ( 和 ) 应该在哪里。我究竟做错了什么?

4

3 回答 3

2

您要求split()在括号和逗号处分开。在您的字符串中,在第一个分隔符(左括号)之前有一个空白子字符串。split()保留该空白子字符串并将其返回到结果数组的第零个元素。

文档中有大量示例说明了该函数的工作原理。

要解决此问题,您可以忽略空字符串,或者翻转正则表达式并匹配数字,而不是在标点符号处拆分。

于 2012-12-04T14:07:39.113 回答
2

您已将分隔符定义为 中的第一个字符,因此您的中将显示String一个空字符串,因为第一个分隔符之前发生的内容。但是,对于您的应用程序,您可以像这样轻松修复它:""ArrayList

ArrayList<String> node_array = new ArrayList<String>();
String allValues[] = node.split("[(,)]");

for(String value : allValues){
  if(!value.equals("")) node_array.add(value);
}

return node_array;
于 2012-12-04T14:11:37.233 回答
1
node.replace("(","").replace(")","").split(",");

或者

node.substring(1,node.length()-1).split(",");
于 2012-12-04T14:14:10.857 回答