java - 如何修复单词请求程序?

标签 java

我创建了一个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/

相关文章:

Java - MySQL - 创建连接错误

java - SSL套接字服务器在握手后获取证书cn

java - 无法在 IntelliJ 上为我的 Maven 项目使用 lagom

java - Apache FOP - PDF 创建俄语文本

java - 在 Java 字节码/类格式中,什么决定一个方法是否覆盖另一个方法?

java - 使用 TestNG 进行异常处理

java - JTable 过滤问题

java - 安卓工作室 : Using ImageButton to start new activity crashes the app

java - 无法在Java中创建sqlite数据库

java - 反转循环双向链表