我是Java的新手,非常感谢有人可以查看这段代码片段,并帮助我。
@SuppressWarnings("unused")
public static void main(String[] args) throws IOException {
File fin = new File("wordList");
FileInputStream fis = new FileInputStream(fin);
BufferedReader br = new BufferedReader(new nputStreamReader(fis));
List<String> wordList = new ArrayList<>();
List<Character> guessedCharacters = new ArrayList<>();
char guessedCharacter;
String line = "";
while ((line = br.readLine()) != null) {
wordList.add(line);
}
br.close();
System.out.println("Welcome to hanged man.");
System.out.println();
for (int i = 0; i < wordList.size(); i++) {
System.out.print("Guess a letter: ");
guessedCharacter = (char) System.in.read();
System.out.println('\n');
}
当我运行上面的代码片段时,我得到以下输出:
欢迎来到被绞死的人。
猜一封信:d
猜一封信:
猜一封信:
我的意图是提示&#34;猜一封信&#34;在我输入第一个字母后只出现一次。
如果我替换&#34; wordList.size()&#34;在任何大于3的整数的for循环中,我得到相同的结果。
我希望听到某人的意见。先感谢您。马科斯
答案 0 :(得分:1)
您正在寻找的是使用Scanner
类(可能不是,因为您的练习看起来微不足道,您可能只想要最简单的方法来读取没有任何GUI的键盘输入),或者最有可能的是:
String answer = System.console().readLine("Guess a letter : ");
不要使用System.read()来阅读按键(或者除非你想让事情复杂化#34;只是为了好玩&#34;:)
答案 1 :(得分:0)
使用System.read.in(),您可以阅读&#39; d&#39;和&#39; \ n&#39;值。尝试使用Scanner类(请参阅here)