如何使用Java替换记事本中的文本?

我正在创建 HANGMAN 游戏,其中有一个名为 Keyboard 的 .txt 文件,其内容如下:-


Q W E R T Y U I O P

 A S D F G H J K L

  Z X C V B N M

为了打印这个,我使用常规方法来做到这一点:-


Scanner textScan = new Scanner(new File("src/Main/Keyboard"));

while(textScan.hasNextLine()) System.out.println(textScan.nextLine());

现在每当用户输入一个字母时,例如“A”,我想编辑记事本,使其变得像:-


 Q W E R T Y U I O P

 - S D F G H J K L

  Z X C V B N M

等等等等。如何编辑此记事本并在一轮后重置它(即没有任何“-”)。


我使用 IntelliJ IDEA 2018.1.6,我想知道如何清除输出窗口。在 BlueJ 中,


System.out.print("\f");

用来做伎俩。但是在这里,每次到达这条线时都会出现一个箭头。


HUWWW
浏览 121回答 1
1回答

慕运维8079593

看来我们在评论部分同意为了简单起见应该将文件扫描为字符串。第二部分可以用递归和简单的字符串方法解决。下面的程序确实包含了你想要的一切,但不是一个功能齐全的刽子手游戏,所以我会让你填空。import java.util.Scanner;import java.io.File;import java.io.FileNotFoundException;public class HangmanDriver {public static final int mistakes_MAX = 6;public static void main(String[] args) throws FileNotFoundException {    File myFile = new File("PATH TO YOUR KEYBOARD FILE");    String myText = "";    Scanner in = new Scanner(myFile);    while(in.hasNextLine()) {        myText += (in.nextLine() + "\n");    }    in.close();    String myWord = "";    boolean stillPlaying = true;    while(stillPlaying) {        in = new Scanner(System.in);        System.out.println("Enter the word for new game: ");        myWord = in.nextLine().toUpperCase();        playGame(in, false, 0, 0, myWord, myText);        System.out.println("Would you like to play again? [Y/N]");        char ans = in.next().charAt(0);        if(ans != 'y' && ans != 'Y')            stillPlaying = false;    }    System.out.println("Goodbye.");}public static void playGame(Scanner in, boolean isOver, int mistakes, int correct, String word, String text) {    if(isOver == false) {           System.out.println("\n" + text + "\n\nEnter a Letter (Must Be Upper Case)");        char letter = in.next().charAt(0);              if(text.indexOf(letter) != -1) {            text = text.replace(letter, '-');            if(word.indexOf(letter) != -1) {                for(char c : word.toCharArray()) {                    if(letter == c)                        correct++;                }                System.out.println("Good guess!");                if(correct == word.length()) {                    System.out.println("You won!");                    playGame(in, true, mistakes, correct, word, text);                } else {                    playGame(in, false, mistakes, correct, word, text);                }            } else {                mistakes++;                System.out.println(mistakes_MAX-mistakes + " guesses left.");                if(mistakes == mistakes_MAX) {                    System.out.println("Game Over!");                    playGame(in, true, mistakes, correct, word, text);                } else {                    playGame(in, false, mistakes, correct, word, text);                }            }        } else {            System.out.println("That is not an option. Try Again.\n\n");            playGame(in, false, mistakes, correct, word, text);        }    }}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java