问题描述
下面是代码。
public static void main(String[] args) {
for(String e : args) {
System.out.println(e);
}
}
当我输入 one
时,输出是 one
我明白这一点。
但是,当输入 one two
时,输出不是 one two
但是 one
和 two
。
空格不是字符吗?如果不是,空格是否将 String 数组中的每个输入分开?
解决方法
args 变量以空格分隔。当您从命令行将参数传递给 main 时,每个空格将指示不同的参数。例如。 C:\program.exe stuff1 stuff2
会将 stuff1
和 stuff2
视为两个独立的数组元素。
实际上是调用程序(通常是 shell)分割参数。
例如,在 bash shell 中,您可以像这样调用程序并在一行中得到 one two
,因为它是您程序的一个参数:
java -jar YourProgram.jar "one two"
,
你说的是程序参数。这些旨在在程序启动时指定一些选项,它们总是由空格符号分隔。
如果您想在程序中包含用户输入,请查看 Scanner
- 这是最简单的方法。它为您提供了一些方法,例如 nextInt()
读取数字,或 nextWord()
读取单词(以空格分隔),或 nextLine()
读取一行而不用空格分隔。
在 Java 中,args
包含作为 String
对象数组提供的命令行参数。
如果您以 one two
的身份运行程序,则 args 将包含 ["one","two"]
。
所以你基本上做的是遍历 String 数组打印它的每个元素。
这就是你得到 "one","two"
而不是 "one two"
for(int i=0;i<args.length;i++)
{
System.out.println(args[i]);
}
以上是您在其中所做的等效代码。