Java基本代码片段

时间:2016-04-04 13:49:41

标签: java input

我是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循环中,我得到相同的结果。

我希望听到某人的意见。先感谢您。马科斯

2 个答案:

答案 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