{
ArrayList<String> node_array = new ArrayList<String>();
String allValues[] = node.split("[(,)]");
for(String value : allValues){
node_array.add(value);
}
node是一个字符串,例如:(3,4,5,6,3)
由于某种原因,当我验证arraylist的内容时,分裂似乎留下了空间的痕迹作为元素,特别是在(和)应该是的位置。我做错了什么?
答案 0 :(得分:2)
您要求split()
在括号和逗号处分开。在您的字符串中,在第一个分隔符(左括号)之前有一个空白子字符串。 split()
保留空白子字符串并将其返回到结果数组的第0个元素。
documentation中有很多例子说明了这个功能是如何运作的。
要解决此问题,您可以忽略空字符串,也可以在其头部翻转正则表达式并匹配数字,而不是在标点字符处进行拆分。
答案 1 :(得分: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;
答案 2 :(得分:1)
node.replace("(","").replace(")","").split(",");
或
node.substring(1,node.length()-1).split(",");