【问题标题】:Replace letters with symbols java用符号替换字母java
【发布时间】:2015-12-09 14:33:16
【问题描述】:

制作刽子手风格的游戏

我有一个随机单词,我想用星号* 替换该单词的字母,以便程序启动时该单词显示为*****

我假设当有人为刽子手游戏输入一个字母时,你会得到该字符在单词中的索引,然后替换相应的*

public class JavaApplication10 {

    public static String[] wordArray = new String[1];
    public static String file_dir = "Animals.txt";
    public static String selectedWord = "";
    public static char[] wordCharacter = new char[1];
    Scanner sc = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        wordArray = get_word(file_dir);
        selectedWord = select_word(wordArray);

        System.out.println(selectedWord);
    }

    public static String[] get_word(String file_dir) throws IOException {
        FileReader fileReader = new FileReader(file_dir);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        List<String> lines = new ArrayList<String>();
        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            lines.add(line);
        }
        bufferedReader.close();
        return lines.toArray(new String[lines.size()]);
    }

    public static String select_word(String[] wordArray) {
        Random rand = new Random();
        int lines = Math.abs(rand.nextInt(wordArray.length) - 1);
        return wordArray[lines];
    }
}

【问题讨论】:

  • 你的问题是什么?
  • @Pshemo 如何将 selectedWord 替换为与长度相同的 * 数量
  • 如果你搜索它们,网上肯定有数百个 Hangman 代码示例。
  • @Squonk 相信我,我看过。似乎没有一个地方明确说明要做什么。我似乎能找到的只是其他人问同样的问题,但答案不适用于我的代码,或者我不知道如何为我的代码工作。我是上个月才开始学习java的。
  • 为什么要创建一个长度为1的字符串数组!!!?只是对对象有一个简单的引用?

标签: java replace indexof


【解决方案1】:

希望能解决你的问题:

StringBuilder myName = new StringBuilder(word);
for(int i=0; i<word.length ;i++) {
myName.setCharAt(i, '*');
}

【讨论】:

    【解决方案2】:
    public static String repeat(char ch, int count) {
        char[] arr = new char[count];
        Arrays.fill(arr, ch);
        return new String(arr);
    }
    

    测试

    System.out.println(repeat('*', 10));
    System.out.println(repeat('A', 15));
    System.out.println(repeat('+', 13));
    

    输出

    **********
    AAAAAAAAAAAAAAA
    +++++++++++++
    

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 2012-01-22
      • 2019-07-31
      • 1970-01-01
      • 2016-07-24
      • 2021-04-09
      • 1970-01-01
      • 2015-07-16
      相关资源
      最近更新 更多