我试图使用indexOf方法来查找字符是否在单词中,但由于字符无法取消引用,我认为它应该转换为字符串,我尝试使用这些Methods但它似乎没有进行准确的比较 - 我应该如何在“indexOF”中使用引用的字符。这是我的代码,如果这是我的代码逻辑的一个愚蠢问题,那么我深表歉意
guess = JOptionPane.showInputDialog("Enter letter ").toUpperCase().charAt(0);
if((String.valueOf(guess)).indexOf(word.toUpperCase())>=0)
{
for(int k = 0; k<word.length(); k++)
{
if(guess==charwo[k])
{
charda[k]=charwo[k];
}
}
}
else
{
guesses = guesses-1;
System.out.println("guesses left "+guesses);
}
最佳答案
我认为您使用 indexOf
的方式是错误的。假设您在 word
中查找 guess
的索引(反之亦然并没有真正意义),它应该是:
word.toUpperCase().indexOf(guess)
这里没有取消引用问题,因为有 indexOf(int)
功能。
contains
可能会使代码更具可读性,不幸的是它需要一个 CharSequence
参数(String
的父类(super class)),因此您需要转换 guess
在本例中为 String
。我通常将基元转换为 String
的方式如下:
word.toUpperCase().contains(""+guess)
虽然我并不是说它比 String.valueOf
更好,但我只是使用它,因为它减少了输入。
关于java - 我如何将 IndexOf 与引用的 char java 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18044146/