gpt4 book ai didi

java - 当一个字符紧接着另一个字符重复时,数组索引超出范围(Java)

转载 作者:行者123 更新时间:2023-12-01 15:43:02 24 4
gpt4 key购买 nike

错误行是 13。错误是数组索引越界。 http://pastebin.com/L3FtzarH

该方法是在字符串中查找字符,它工作正常,除非同一字符紧邻有重复字符,例如在单词“Rabbit”中,给我一个带有字母“b”的错误因为它出现了两次并且位于同一个字母旁边。

我正在玩刽子手游戏。我将索引乘以 to 作为空格。例如:如果 secret 单词是“cat”,那么它将出现3个下划线:“_ _ _”该下划线字符串有6个字符,所以如果字母是A(世界“cat”中的索引1)我乘以2填充字符串中的正确位置下划线:“_ A _”

编辑 1,您的代码:

   public void buscarLetra() {
chequearif = false;
string = "";
letra = letraEscogida.toCharArray();
System.out.println("la letra pasa a char:" + letra[0]);
int index = 0;
for (int i = 0; i < (palabraElegida.length()); i++) {
if (palabraElegida.substring(i, i + 1).equals(letraEscogida) == true) {
if (chequearif == true) {
string = "";
index = palabraElegida.indexOf(letraEscogida, index + 1);
index *= 2;
arrayGuiones[index] = letra[0];
System.out.println("segundo index: " + index);
index = 0;
}
index = palabraElegida.indexOf(letraEscogida);
index *= 2;
System.out.println("primer index: " + index);
arrayGuiones[index] = letra[0];
for (int j = 0; j < arrayGuiones.length; j++) {
string += arrayGuiones[j] + "";
}
lbl_palabra.setText(string);
chequearif = true;
}
}
}

最佳答案

if (chequearif == true) { block 内,您尝试在 indexOf() 调用中使用 index 。您试图在第一次出现后检查更多出现的情况,您认为 index 指向该出现,但您忘记了之前已将索引乘以 2。因此它指向第二个之外的某个位置发生,因此 indexOf() 返回 -1。您将其加倍为 -2,然后尝试说 arrayGuiones[index],这显然永远不会与负索引一起使用。

关于java - 当一个字符紧接着另一个字符重复时,数组索引超出范围(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7698505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com