我创建了一个JAVA代码,并且没有任何错误,但是当我运行代码时,输出是这样的: 输入一个词: 感谢您输入一个词!它不允许我输入任何内容,当我打算让代码让我输入一个单词时,它会检查它是否是一个单词,如果是单词则给出答案,如果不是单词则不给出答案。 (这是我第一次在这个网站上提问)这是代码:
package files;
import java.util.Scanner;
public class Testprinter {
static boolean myBoolean = false;
static Scanner userInput = new Scanner(System.in);
public static void main(String[] args){
String usersInput;
while(myBoolean != true)
{
System.out.print("Enter a word: ");
usersInput = userInput.toString();
myBoolean = checkInput(usersInput);
}
checkifComplete();
}
public static boolean checkInput(String usersInput){
if(usersInput == (String)usersInput)
{
return true;
} else { return false; }
}
public static void checkifComplete(){
if(myBoolean = true){
System.out.print("Thank you for entering a word!");
}
}
}
最佳答案
这一行是错误的:
if (usersInput == (String)usersInput)
应该是:
if (usersInput.equals(usersInput))
在 Java 中,字符串(一般来说:所有对象,即所有非原始类型)必须使用 equals()
进行比较方法,用于测试相等。 ==
运算符适合测试基本类型之间的相等性,但对于它测试身份的对象来说 - 一个不同的概念,并且 99% 的时间,不是您想要的。
此外,您正在将字符串与其自身进行比较!它总是会返回true
,我很确定这不是您想要做的...请注意,参数必须具有不同的名称,目前它的名称与属性一样。也许这就是你的意思?
public static boolean checkInput(String input) {
return usersInput.equals(input);
}
关于java - 如何修复单词请求程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25716174/