为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUWWW 2021-12-01 18:54:30
我正在创建 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");用来做伎俩。但是在这里,每次到达这条线时都会出现一个箭头。
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

看来我们在评论部分同意为了简单起见应该将文件扫描为字符串。第二部分可以用递归和简单的字符串方法解决。下面的程序确实包含了你想要的一切,但不是一个功能齐全的刽子手游戏,所以我会让你填空。


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);

        }

    }

}


}


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信