拆分主要方法参数忽略空格

Splitting main method arguments ignoring whitespace

我的主要方法参数用逗号分隔,一些值也可能有空格,我必须只拆分逗号分隔的值而忽略空格。

例如: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);
    }
}

请帮忙

尝试一次,接收变量 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]);

希望对您有所帮助

首先尝试先从字符串中删除空格。

st.replaceAll("\s+","")

来自 Removing whitespace from strings in Java

删除空格后,您现在可以使用拆分方法了。

您可以先将 args 的所有元素合并,然后再拆分。 像这样:

String str = "";
for (String eachArg : args) {
    str += eachArg + " ";
}
System.out.println (str.split(",").length);

希望对您有所帮助。

如果您将 abcdef,xyzert,mnop qrst 作为您的 args 传递给您的主要方法,那么您可以检查参数的值和长度。长度将为 2,值将为 abcdef,xyzert,mnop & qrst.


要实现您想要的效果,您可以将命令行中的输入更改为 abcdef,xyzert,"mnop qrst"。需要用""来识别为一个词.

如果您不知道输入的内容是什么,因为在哪个字段之间会有 space,那么您可以使用一般规则

将你所有的单词包装在 "" 中并将其传递给主要方法,如

"abcdef","xyzert","mnop qrst"

将整行包裹在""中,然后将其传递给main方法,如

"abcdef,xyzert,mnop qrst"