如何将char放在多个索引

时间:2016-01-17 20:13:59

标签: java arraylist stringbuilder charat

i have to think a 12 letter word and the computer has to guess the word.我有一个字母A到Z的arraylist。我让电脑随机选一个字母,如果字母在单词中,我必须把字母放在索引处。但如果这封信必须在索引2和8处怎么办。how could i do that?  提示非常有用。

!!如果计算机猜到单词中的一个字母,我在相应的索引处设置该字母i输入2,例如

正确知道它只将信件放在一个索引上然后删除了这封信(因为它只能给那封信一次。我使用的是12个字母。

            private Scanner sc;
            private ArrayList<Character> letters;
            private int answer;
            private char randL;
            private char ch;
            private int wrongG = 0; 
            private int wrongA = 0; 
            private int randNum;
            private StringBuilder hiddenW = new StringBuilder("............");
            private boolean match;

  public void gameComputer() {
    for (int i = 0; i < 26; i++) { 
        ch = (char) ('A' + i);
        letters.add(ch);
    }

    while (wrongA < 10) {
        randNum = (int) (Math.random() * letters.size());
        randL = letters.get(randNum);
        System.out.println("De computer raadt een " + randL
                + ". Op welke plaats(en) staat die letter?");
        answer = sc.nextInt();

        for (int ii = 0; ii < hiddenW.length(); ii++) {
            if (answer > -1 && answer < 12) {
                hiddenW.setCharAt(answer, randL);
                match = true;

            }

        }

        if (answer == 100) {
            match = false;
        }
        if (match) {
            System.out.println(hiddenW);
            System.out.println("Aantal fouten: " + wrongA);
        }
        if (!match) {
            wrongA = wrongA + 1;
            System.out.println("Aantal fouten: " + wrongA);
        }
        if (wrongA == 10) {
            System.out.println("you couldn't guess the word");
            break;
        }
        letters.remove(randNum);
    }
}

输出:

 the computer guessed O. Op welke plaats(en) staat die letter?
 2 8     
..O.........
Aantal fouten: 0
the computer guessed  I. Op welke plaats(en) staat die letter?
..O.....I...
Aantal fouten: 0
the computer guessed  K. Op welke plaats(en) staat die letter?

我想把这封信放在多个指数上 就像计算机猜到A 我想键入2和8并将letter A设置为索引2和8

2 个答案:

答案 0 :(得分:0)

toCharArray()函数应该有帮助。

我想你可以用toCharArray分解隐藏的单词,然后将随机选择的字母与新数组的每个成员进行比较。

toCHarArray()

答案 1 :(得分:0)

如果您希望能够提供多个索引而不是一个索引,请使用sc.nextLine()而不是sc.nextInt()并编写以逗号分隔的索引(或者如果您鄙视逗号则使用其他内容) - 例如&#34; 2,8&#34 ;.然后,您可以使用charAt读取整个字符串,并遍历整个字符串或您喜欢的任何其他方式。