gpt4 book ai didi

java - java中使用equalsIgnoreCase显示错误的方法

转载 作者:行者123 更新时间:2023-12-01 14:19:36 25 4
gpt4 key购买 nike

我是java新手。我正在弄乱一些代码,以允许它显示错误,而不是如果用户输入它不想要的内容(例如一堆随机字母),整个系统都会收到错误。我想使用 boolean 值,但我不知道从哪里开始。我使用了 int 的 try 和 catch,但我不确定如何处理 boolean 值。有人告诉我 equalsIgnoreCase,但我不知道在哪里添加它。我们将不胜感激。

import javax.swing.JOptionPane;

public class bday
{
public static void main(String[] args)
{
String age = "0";

age = JOptionPane.showInputDialog("What was your age yesterday?");

int iage = 1;

try
{
iage = Integer.parseInt(age);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Thanks a lot, you broke it. CYA later.");
return;
}

String bday = "0";

bday = JOptionPane.showInputDialog("Was yesterday your B-Day? (True or False)");


try
{
bage = Boolean.parseBoolean(bday);
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "WHY U MESS UP PROGRAM???.... BYE BYE!!");
return;
}

if (bage == true){
iage += 1;
JOptionPane.showMessageDialog(null, "You are now " + iage);
}
else if (bage == false){
JOptionPane.showMessageDialog(null, "Happy unbirthday!");
}
if (iage ==10){
JOptionPane.showMessageDialog(null, "Congrats, double digits!");
}
if (iage >19){
JOptionPane.showMessageDialog(null, "U aint a Teenager");
}
else if (iage < 13)
JOptionPane.showMessageDialog(null, "U aint a Teenager");

}
}

我在搞什么......

String bday = "0";
String str1 = "true";
String str2 = "false";

bday = JOptionPane.showInputDialog("Was yesterday your B-Day? (True or False)");


boolean bage = bday.equalsIgnoreCase(str1);
boolean bage2 = bday.equalsIgnoreCase(str2);

if (bage == true){
iage += 1;
JOptionPane.showMessageDialog(null, "You are now " + iage);

最佳答案

使用Boolean#parseBoolean()单独并不能验证字符,因为它对于任何不计算为 true 的字符串返回 false (当然忽略大小写)。因此,对于垃圾字符,它也会返回 false,而不是抛出解析异常。

因此,您需要使用 equalsIgnoreCase() 测试 bday 以验证用户是否输入了以下两个值之一:true。这不再需要您处理异常,因此现在不需要 try-catch

if (bday.equalsIgnoreCase("true") || bday.equalsIgnoreCase("false")) {
bage = Boolean.parseBoolean(bday);
} else {
JOptionPane.showMessageDialog(null, "Invalid choice: Enter true or false.");
return;
}

if (bage){ // bage == true is unnecessary
iage += 1;
JOptionPane.showMessageDialog(null, "You are now " + iage);
} else { // no need to check the condition again
JOptionPane.showMessageDialog(null, "Happy unbirthday!");
}

关于java - java中使用equalsIgnoreCase显示错误的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17736214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com