我正在创建一个刽子手游戏,我需要用户键入一个字母,一旦字母在其中搜索字符串以检查它是否存在。唯一的问题是,如果有两个,它会找到第一个字母而不是第二个字母。例如,如果单词是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++;
答案 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++;
}
}