for (int k=0;k<lngth;k++)
{
if (Character.toString(line.charAt(k)).equals(gss))
{
upd=upd.substring(0,k)+" "+gss+" "+upd.substring(k+1);
c++;
}
}
在上面的代码中,“ gss”是用户输入的字母,“ line”是“ EMOTION”一词,“ lngth”是行的长度,如果输入的字母与以下任何一个匹配,则“ upd”存储更新后的字符串'line'的字母以下是输出的一部分。而且我无法理解错误。
如果您能找到错误,请。
提前致谢!!
输入字母猜单词
Ë
E _ _ _ _ _ _
输入字母猜单词
Ø
E O O _ _ _ _ _ _
输入字母猜单词
米
M O O _ _ _ _ _ _
输入字母猜单词
ñ
单核细胞增多症 _ _ _ _ _ _
输入字母猜单词
最佳答案
看起来您的代码假定upd
字符串的长度与line
字符串的长度相同。但是,一旦为String
分配了新的upd
,则会将其长度增加2(由于添加了空格),这意味着line
字符串的索引不再与upd
字符串的索引匹配。
尝试删除添加的空格,看看是否可以解决您的问题:
for (int k=0;k<lngth;k++)
{
if (Character.toString(line.charAt(k)).equals(gss))
{
upd=upd.substring(0,k)+gss+upd.substring(k+1);
c++;
}
}