如何分隔字符串数组中的输入?空间? 初学者

问题描述

下面是代码

public static void main(String[] args) {
    for(String e : args) {
        System.out.println(e);
    }
}

当我输入 one 时,输出one 我明白这一点。

但是,当输入 one two 时,输出不是 one two 但是 onetwo

空格不是字符吗?如果不是,空格是否将 String 数组中的每个输入分开?

解决方法

args 变量以空格分隔。当您从命令行将参数传递给 main 时,每个空格将指示不同的参数。例如。 C:\program.exe stuff1 stuff2 会将 stuff1stuff2 视为两个独立的数组元素。

,

实际上是调用程序(通常是 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]);
}

以上是您在其中所做的等效代码。