您即将外壳部分正确。假设你使用的是Unix,那么你的Unix shell会将你的输入字符串分割为空白字符,然后把每一个字符串作为输入到“main”的数组中的一个元素。只有这样,才能得到一切在一个字符串是引用像这样(你说你不想要的):
java MyProgram 'Hello World'
如果你不想这样做,最简单的事情要做的仅仅是他们重新组合成一个字符串:
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
for(String s : args) {
sb.append(s);
sb.append(" "); //some length of whitespace
}
String yourString = sb.toString().trim();
}
这里真正的问题是,如果你尽量避免引用和你自己重组输入字符串,你将失去每个单词之间的空格量。如果重组,所有以下命令行:
java MyProgram Hello World
java MyProgram Hello World
java MyProgram Hello World
将仍然只是显示为“Hello World”的程序中。
java MyProgram。类不工作,除非你的类被命名为'类'和你的包'MyProgram''可能你打算'Java MyProgram' – OscarRyz 2010-03-17 23:09:54
@Oscar,好点。我做了这个改变。 – User1 2010-03-18 13:57:56