2016-08-20 3 views
0

答えの検索で見つかったほとんどの例は、複雑なコードに埋め込まれています。私はちょうど2つの答え(バイナリ?)質問への大文字または小文字のどちらかの応答を受け入れることを知っている質問プログラムを持ってしようとしているし、いずれかの答えを使用して単数結果に進みます。私は本の中で文字クラスのメソッドを見つける前にif/elseのアプローチを試みましたが、それは例の半分の方法に役立ちます。どちらが先ですか? charまたはString?

はここのコードです:

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

はちょうどあなたの期待ケースにすべての入力を変換する(大文字または小文字、1つを選びます)。

文字をそのような場合に既に起こっている1つのケースに変換しようとすると、害はありません。 toUppercaseメソッドは、不必要に呼び出したときに不平を言うことはありません。したがって、ケースをテストする必要はありません。

marStat = marStat.toUppercase() ; 
if (marStat.equals('S') { 
    … do Single stuff 
} else if (marStat.equals('M') { 
    … do Married stuff 
} else { 
    … handle unexpected input 
} 

ヒント:無数の回、このコードを実行している場合、the Oracle Tutorialで議論オートボクシングを避けるためにCharacterクラスとプリミティブcharの使用を置き換えることを検討。

+1

この新しいパターンコーダーは、この「パターン」を覚えているでしょう。ユーザーの入力を既知の文字列と比較している間は、あなたのキャリアに何度も繰り返し使用します。 – MarsAtomic

+0

@ RyanMartin ??? M&Sを何にする? –

+0

心配しないでください。私はあなたが私の質問に答えたと思う。私はif/elseアクションで 'M'または 'S'を使いたいのですが、大文字と小文字を区別せずに認識させる方法はわかりませんでした。 –

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

私はあなたが完全にどのようにプログラミングの作品を理解するとは思いません。

関連する問題