我想从用户那里获取输入,在这种情况下,他们的全名,并将它与.split("")命令分成2或3个部分,具体取决于名称的数量,然后在不同的行上打印出结果:
例如,
用户输入:
" John Doe Smith"
程序返回:
约翰
Doe的
史密斯
目前,我的代码如下所示:
import java.util.Scanner;
public class Task2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String name;
System.out.println("Enter your full name: ");
name = input.next();
String[] parts = name.split(" ");
System.out.println(java.util.Arrays.toString(parts));
}
}
目前只返回名称的第一部分。
该计划还应该能够处理没有中间名的人。
答案 0 :(得分:4)
input.next()
仅返回第一个遇到空格之前的第一个字符串,请尝试input.nextLine()
答案 1 :(得分:1)
import java.util.Scanner;
public class Task2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String name;
System.out.println("Enter your full name: ");
while (input.hasNext()) {
name = input.next();
String[] parts = name.split(" ");
System.out.println(java.util.Arrays.toString(parts));
}
}
}
答案 2 :(得分:0)
查看JavaDoc of Scanner,next()方法返回输入流的下一个标记。不是整行。
答案 3 :(得分:0)
这也可能有用。
执行为例如java -jar SplitTest.jar Something Null
public class SplitTest {
public static void main(String[] args) {
String name = "";
for (String arg : args) {
name = arg;
System.out.println(name);
}
}
}