Java 使用扫描仪提示用户输入,直到用户以<;ctrl D>;
我正在编写一个名为NameList.Java的小型Java应用程序。它应该提示输入一个字符来拆分字符串。 然后,它应该提示输入一个名称列表,每行一个,直到用户终止。现在,名称将是一个长度为2的简单名称,如下所示 “名姓” 在读取每个名称后,程序应将名称显示为“姓氏,给定名称”(例如,“Smith,John”)。如果该人的姓氏位于拆分字母之前或以拆分字母开头,则应报告该人前往演讲厅A,否则应报告该人前往演讲厅B 我不知道为什么当我运行我的代码时,我没有得到持续的提示?有人知道为什么吗?谢谢大家的时间和回复Java 使用扫描仪提示用户输入,直到用户以<;ctrl D>;,java,java.util.scanner,string-split,Java,Java.util.scanner,String Split,我正在编写一个名为NameList.Java的小型Java应用程序。它应该提示输入一个字符来拆分字符串。 然后,它应该提示输入一个名称列表,每行一个,直到用户终止。现在,名称将是一个长度为2的简单名称,如下所示 “名姓” 在读取每个名称后,程序应将名称显示为“姓氏,给定名称”(例如,“Smith,John”)。如果该人的姓氏位于拆分字母之前或以拆分字母开头,则应报告该人前往演讲厅A,否则应报告该人前往演讲厅B 我不知道为什么当我运行我的代码时,我没有得到持续的提示?有人知道为什么吗?谢谢大家的时
import java.util.Scanner;
public class Namelist {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter Split String ...");
char splitter = in.nextLine().toLowerCase().charAt(0);
String checker;
while(in.hasNext()) {
System.out.println("Enter a name to check ...");
String s = in.next();
String[] tokens = s.split(" ");
if (tokens[0].contains(Character.toString(splitter).toLowerCase())
|| tokens[1].toLowerCase().charAt(0)== splitter) {
System.out.printf("%s, %s : Lecture Room A." ,tokens[1],tokens[0]);
} else {
System.out.printf("%s, %s : Lecture Room B.",tokens[1],tokens[0]);
}
in.close();
}
}
}
Scanner\next()
做什么?Scanner#close()
做什么?next()方法是返回下一个令牌,close()方法是关闭Scanner以防止资源泄漏,因为我的eclispe一直在抱怨它。我以前从未使用过这种提示用户输入的方式,但我只是想知道如何进行测试,以及令牌的定义是什么?而又是什么呢!在.hasNext()中
mean?我认为您应该从阅读开始。特别是对于您的情况,请检查hasNext方法描述中的“Throws”部分。