我的主要方法参数用逗号分隔,而且有些值也可能有空格,我必须只拆分逗号分隔的值忽略空格。
例如:abcdef,xyzert,mnop qrst
我尝试过使用split(",")
但是它给了我4个值而不是3个,因为最后一个元素应该被视为一个元素。
这是我的代码:
public class ArgCheck {
public static void main(String [] args) {
String x = Arrays.toString(args);
System.out.println(x);
String [] y = x.split(",");
System.out.println(y.length);
}
}
请帮忙
答案 0 :(得分:1)
如果您将abcdef,xyzert,mnop qrst
作为args
传递给主要方法,则可以检查args的值和长度。长度为2
,值为abcdef,xyzert,mnop
& qrst
。
要实现您的目标,您可以在命令行中将输入更改为 abcdef,xyzert,"mnop qrst"
。您需要使用""
将其标识为一个字。
如果您不知道哪个输入将在哪个字段之间有空格,那么您可以使用一般规则
将所有单词包装在""
中并将其传递给主方法,如
<强> "abcdef","xyzert","mnop qrst"
强>
或将整行包裹在""
中,然后将其传递给主方法,如
<强> "abcdef,xyzert,mnop qrst"
强>
答案 1 :(得分:0)
尝试一次,接收变量string
作为命令行参数。
String string = "abcdef,xyzert,mnop qrst";
String[] parts = string.split(",");
String part1 = parts[0];
String part2 = parts[1];
String part3 = parts[2];
System.out.println(part1+"\n"+part2+"\n"+part3);
如果您需要n
个值,请使用loop
for(int i=0;i<parts.length;i++)
System.out.println(parts[i]);
希望有所帮助
答案 2 :(得分:0)
首先尝试首先从字符串中删除空格。
st.replaceAll("\\s+","")
从Removing whitespace from strings in Java
获取此信息删除空格后,您现在可以使用拆分方法。
答案 3 :(得分:0)
您可以先加入args
的所有元素,然后将其拆分。
像这样:
String str = "";
for (String eachArg : args) {
str += eachArg + " ";
}
System.out.println (str.split(",").length);
希望这有帮助。