如何检查字符串是不是不等于 java 中的对象或其他字符串值?

Posted

技术标签:

【中文标题】如何检查字符串是不是不等于 java 中的对象或其他字符串值?【英文标题】:How do you check if a string is not equal to an object or other string value in java?如何检查字符串是否不等于 java 中的对象或其他字符串值? 【发布时间】:2011-12-08 20:10:33 【问题描述】:

我一直在尝试制作一个用户可以设置的时钟。我希望用户被问到问题,他们用“是”或“否”之类的词来回答。我已经为使用此代码不会更改的事情完成了它,例如用户是否想要显示秒数,但是当我想要更改字符串时它不起作用,比如从 AM 到 PM当小时超过 12 时。这是我正在使用的:

    System.out.println("AM or PM?"); 
    Scanner TimeOfDayQ = new Scanner(System.in);
    TimeOfDayStringQ = TimeOfDayQ.next();

    if(!TimeOfDayStringQ.equals("AM") || !TimeOfDayStringQ.equals("PM")) 
        System.out.println("Sorry, incorrect input.");
        System.exit(1);
    

    ...

    if(Hours == 13)
        if (TimeOfDayStringQ.equals("AM")) 
            TimeOfDayStringQ.equals("PM");
         else 
            TimeOfDayStringQ.equals("AM");
        
                Hours = 1;
        
     

每当我输入任何提示时,无论我输入 AM、PM 还是其他方式,它都会给我写的错误然后退出。当我删除因错误终止程序的代码部分时,它不会在小时等于 13 时将字符串从 AM 更改为 PM。感谢您的帮助,非常感谢。

【问题讨论】:

作为观察,为避免混淆,java 变量应该以小写字母开头。 【参考方案1】:

将您的代码更改为:

System.out.println("AM or PM?"); 
Scanner TimeOfDayQ = new Scanner(System.in);
TimeOfDayStringQ = TimeOfDayQ.next();

if(!TimeOfDayStringQ.equals("AM") && !TimeOfDayStringQ.equals("PM"))  // <--
    System.out.println("Sorry, incorrect input.");
    System.exit(1);


...

if(Hours == 13)
    if (TimeOfDayStringQ.equals("AM")) 
        TimeOfDayStringQ = "PM"; // <--
     else 
        TimeOfDayStringQ = "AM"; // <--
    
            Hours = 1;
    
 

【讨论】:

【参考方案2】:

您需要使用 && 来查看它不等于“AM”且不等于“PM”

if(!TimeOfDayStringQ.equals("AM") && !TimeOfDayStringQ.equals("PM")) 
    System.out.println("Sorry, incorrect input.");
    System.exit(1);

要清楚你也可以这样做

if(!(TimeOfDayStringQ.equals("AM") || TimeOfDayStringQ.equals("PM")))
    System.out.println("Sorry, incorrect input.");
    System.exit(1);

在代码中包含not (one or the other) 短语(记住(无声)括号)

【讨论】:

非常感谢。我对java有点陌生,这可能就是我犯了这么简单的错误的原因。非常感谢。【参考方案3】:

改变你的 ||到 && 所以它只会在答案既不是“AM”也不是“PM”时退出。

【讨论】:

以上是关于如何检查字符串是不是不等于 java 中的对象或其他字符串值?的主要内容,如果未能解决你的问题,请参考以下文章

如何进行`if`检查键入的单词是不是等于C中字符串列表中的某个单词? [复制]

如何检查一个字符是不是等于一个空格?

检查第一个字符串是不是小于或等于第二个字符串中的相应字母

如何检查对象是不是是Java中的集合类型?

如何检查我的字符串是不是等于null?

如果Set包含具有某些字符串值的对象,如何检入java?