哪个先来?字符串还是字符串?

时间:2016-08-20 05:20:07

标签: java if-statement char stringbuilder uppercase

我在搜索答案时发现的大多数示例都嵌入在复杂的代码中。我只是想让一个问题程序知道接受大写或小写的双回答(二进制?)问题的答案,然后使用任何一个答案来进行单数结果。在我的书中找到字符类方法之前,我尝试了一种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);
}
} 

2 个答案:

答案 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)

isUppercaseisLowercase根本不起作用。你的代码没什么意义。

您似乎只想比较字符,但是调用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!");
}

我认为你并不完全理解编程是如何运作的。