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
E O O _ _ _ _ _ _
输入字母来猜单词
米
M O O _ _ _ _ _ _
输入字母来猜单词
n
莫诺_ _ _ _ _ _
输入字母来猜单词
最佳答案
看起来您的代码假设 upd
字符串的长度与 line
字符串的长度相同。但是,一旦将新的 String
分配给 upd
,它的长度就会增加 2(由于添加了空格),这意味着 line
的索引code> 字符串不再与 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++;
}
}
关于java - 难以理解逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255007/