在一个字符串中查找相同的字符

时间:2014-11-27 20:58:48

标签: java string indexof

我正在创建一个刽子手游戏,我需要用户键入一个字母,一旦字母在其中搜索字符串以检查它是否存在。唯一的问题是,如果有两个,它会找到第一个字母而不是第二个字母。例如,如果单词是roar,它将返回r为0,但它也是3。

System.out.print("Guess: ");
        char c = s.next().charAt(0);
        if (newline.indexOf(c) >= 0) {
            index = newline.indexOf(c);

            System.out.println(newline.indexOf(c));
            System.out.println("Correct Guess!!");

            indexarray[x] = index;
            correctguesses[x] = c;
            count++;

3 个答案:

答案 0 :(得分:1)

indexOf(int c)方法从左到右返回char第一次出现的索引。要查找更多事件,您必须重复调用它,使用indexOf(int ch, int fromIndex)传递找到的最后一个匹配项的索引+ 1。

答案 1 :(得分:0)

只需循环浏览并执行必要的操作即可。 使用方法toCharArray将字符串转换为char数组。然后使用for循环并遍历该数组。

答案 2 :(得分:0)

    System.out.print("Guess: ");
    char c = s.next().charAt(0);
    int lastFind = 0; 
    while(newline.indexOf(c,lastFind) >= 0){
        if (newline.indexOf(c,lastFind) >= 0) {
            index = newline.indexOf(c,lastFind);

            System.out.println(newline.indexOf(c,lastFind));
            System.out.println("Correct Guess!!");

            indexarray[x] = index;
            correctguesses[x] = c;
            lastFind =index;
            count++;
         }
     }