拆分方法在数组中留出空间


{
    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 的内容时,拆分似乎留下了一串空间作为元素,特别是 ( 和 ) 应该在哪里。我做错了什么?

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

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

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

您已经将分隔符定义为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;
node.replace("(","").replace(")","").split(",");

node.substring(1,node.length()-1).split(",");

最新更新