Java 在数组中留下空间的拆分方法 { ArrayList节点_数组=新建ArrayList(); 字符串allValues[]=node.split(“[(,)]”); for(字符串值:allValues){ 节点\数组。添加(值); }

Java 在数组中留下空间的拆分方法 { ArrayList节点_数组=新建ArrayList(); 字符串allValues[]=node.split(“[(,)]”); for(字符串值:allValues){ 节点\数组。添加(值); },java,Java,节点是字符串,例如:(3,4,5,6,3) 出于某种原因,当我验证arraylist的内容时,拆分似乎会留下一条作为元素的空间轨迹,特别是(和)应该在哪里。我做错了什么?你在问split()在括号和逗号处拆分。在字符串中,第一个分隔符,即左括号前面有一个空子字符串。split()保留该空子字符串,并将其返回到结果数组的第0个元素 中有大量示例说明了函数的工作原理 要解决这个问题,您可以忽略空字符串,或者翻转正则表达式的头部并匹配数字,而不是在标点字符处进行拆分。您要求的是split()在括号和逗

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

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

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

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

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

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

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


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

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

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

    for(String value : allValues){
        node_array.add(value);
    }
ArrayList节点_array=new ArrayList();
字符串allValues[]=node.split(“[(,)]”);
for(字符串值:allValues){
如果(!value.equals(“”)node_array.add(value);
}
返回节点数组;

您已将分隔符定义为
字符串中第一个字符的字符之一,因此空字符串
将显示在
数组列表中,因为在第一个分隔符之前会出现这种情况。但是,对于您的应用程序,您可以像这样轻松地修复它:

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

    for(String value : allValues){
        node_array.add(value);
    }
ArrayList节点_array=new ArrayList();
字符串allValues[]=node.split(“[(,)]”);
for(字符串值:allValues){
如果(!value.equals(“”)node_array.add(value);
}
返回节点数组;


它会留下一个空字符串,如
,而不是一个空格
。这就是
split()
的工作原理。使用brimborium建议的方法。它会留下一个空字符串,如
,而不是空格
。这就是
split()
的工作原理。使用brimborium建议的方法。
node.replace("(","").replace(")","").split(",");
node.substring(1,node.length()-1).split(",");