如何检查字符串是不是不等于 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 中的对象或其他字符串值?的主要内容,如果未能解决你的问题,请参考以下文章