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