我在搜索答案时发现的大多数示例都嵌入在复杂的代码中。我只是想让一个问题程序知道接受大写或小写的双回答(二进制?)问题的答案,然后使用任何一个答案来进行单数结果。在我的书中找到字符类方法之前,我尝试了一种if / else方法,但它只对它的一些例子有所帮助。
这是代码:
import java.util.Scanner;
public class MarriageQuiz
{
public static void main(String[] args)
{
char isMarried = 'M';
char isSingle = 'S';
String marStat;
System.out.print("Please enter your Marital Status (M or S) >> ");
marStat = input.nextLine();
if(marStat.isUppercase(isMarried | isSingle))
{
marStat = input.nextLine();
}
else if((marStat.isLowercase(isMarried | isSingle)))
{
marStat = marStat.toUpperCase(isMarried | isSingle);
}
System.out.print("You are " + marStat);
}
}
答案 0 :(得分:2)
只需将所有输入转换为您预期的情况(大写或小写,您选择一个)。
在尝试将角色转换为恰好已经存在的情况时,没有造成任何伤害。当你不必要地调用它时,toUppercase
方法不会抱怨。所以根本不需要测试案例。
marStat = marStat.toUppercase() ;
if ( marStat.equals( 'S' ) {
… do Single stuff
} else if ( marStat.equals( 'M' ) {
… do Married stuff
} else {
… handle unexpected input
}
提示:如果运行此代码数十万次,请考虑将char
原语替换为Character
类,以避免the Oracle Tutorial中讨论的自动装箱。
答案 1 :(得分:0)
isUppercase
和isLowercase
根本不起作用。你的代码没什么意义。
您似乎只想比较字符,但是调用nextLine
并返回String
。在if语句中,您不知何故再次要求用户输入 。我真的不知道你在这做什么。
我猜你想要这样的东西:
char isMarried = 'M';
char isSingle = 'S';
char marStat;
System.out.print("Please enter your Marital Status (M or S) >> ");
marStat = input.nextLine().charAt(0);
if(marStat == 's' || marStat == 'S')
{
System.out.println("You are single!");
}
else if(marStat == 'm' || marStat == 'M')
{
System.out.println("You are married!");
}
我认为你并不完全理解编程是如何运作的。