【问题标题】: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 变量应该以小写字母开头。

标签: java string time if-statement user-input


【解决方案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”时退出。

    【讨论】:

      猜你喜欢
      • 2018-02-10
      • 2014-07-29
      • 2023-03-11
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 2018-08-27
      • 1970-01-01
      相关资源
      最近更新 更多