{
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(",");