如果在字符串中找不到特定的字符,我该如何减去-1

时间:2012-09-23 18:50:33

标签: java string char

我需要一些关于如何对此进行编程的提示,此方法适用于刽子手游戏guessCh是用户猜到的字母,而secretCh是秘密字中的字母,它们来自{ {1}}一次一个。但我所需要的不仅仅是while() loop不工作因为秘密单词由几个字母组成,所以它将从秘密单词中的所有字母中减去点,不应该减去。只有在任何if (guessCh != secretCh)字母/或秘密字中找不到guessCh字符时,才应减去-1。

我似乎被困在这上面,我知道这很简单......但是给我一个骨头。我已经花了很多时间在这上面。

secretCh

3 个答案:

答案 0 :(得分:4)

您可以对您的秘密中找到的字符执行ArrayList。 然后使用ArrayList

中的.contains(Char c)方法

一个例子:

ArrayList<Char> secret = new ArrayList<Char>();
secret.add('w');
secret.add('o');
secret.add('r');
secret.add('l');
secret.add('d');

if(secret.contains(new Char('x')) {
    System.out.println("Found");
} else {
    System.out.println("Not Found");
}

答案 1 :(得分:2)

我认为这可能是家庭作业,所以gtgaxiola的回答可能是老师不想看到的。下面是如何在常规字符数组上实现等效的.contains(),这样您就不必在当前代码中进行太多更改。

    char[] secretCh = new char[]{'s', 'e', 'c', 'r', 'e', 't'};
    char guessCh = 'e';

    boolean found = false;
    for(int i = 0; i < secretCh.length; i++) { // loop through each character in the secretCh array
        if (secretCh[i] == guessCh) {
            found = true;
            break;
        }
    }
    if (found)
        System.out.println("guessCh is a letter in the secret word.");

答案 2 :(得分:2)

String对象已经内置了此功能。

你真正需要的是这样的:

if(secretStr.indexOf(guessCh) < 0) nTurnsLeft--;

indexOf返回String secretStr中char guessCh的位置索引。如果找不到guessCh,则indexOf返回-1;