2016-08-20 76 views
0

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

我在调用这个使用布尔值的想法 –

+0

我想过使用StingBuilder,但我仍然需要确定要编辑的字符串。 –

+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 
} 

提示:如果运行该代码亿万倍,考虑与Character类代替使用char原始的,以避免在the Oracle Tutorial自动装箱讨论。

+1

任何新的编码器都会很好地记住这个“模式” - 每当您将用户输入与某个已知字符串进行比较时,您都会在职业生涯中反复使用它。 – MarsAtomic

+0

@RyanMartin ???让M&S变成什么? –

+0

不要紧。我想你回答了我的问题。我想在我的if/else动作中使用'M'或'S',我只是不知道如何让它被识别而不管大小写。 –

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!"); 
} 

我不认为你完全了解如何编程工作。

相关问题