2017-01-30 24 views
-2

ユーザー入力文字列を検証して、その文字列にカンマが含まれていることを確認する必要があります。コンマが含まれていない場合は、 "Error"と表示され、ユーザーが入力を再入力できるようにする必要があります。私はどちらのループを使うのかよく分かりません。他にもうまくいくかもしれませんが、ユーザの入力のためにスキャナにループバックする必要があります。または.containsを使用するwhileループ?ありがとう。帰国文字ループの文字列を確認してください

boolean found = false; 
while (found == false) { 
    String input = "this is a sentence, with a comma"; // read input here 
    for (char ch: input.toCharArray()) { 
     if (ch == ',') { 
      found = true; 
     } 
    } 
    if (found == false) { 
     System.out.println("Error"); 
    } 
} 

おそらくのような組み込みのJavaでこのために機能し、「string.contains(文字)」が存在します:あなたはループを使用する場合は

+2

あなたが追加したタグであると言うことができます!少なくとも一度はそれらを試してみてください。 本、ツール、ソフトウェアライブラリ、チュートリアル、その他のオフサイトリソースを推薦する、または見つけることを尋ねる質問は、批判的な回答や迷惑メールを引き付ける傾向があるため、スタックオーバーフローのトピックではありません。代わりに、問題を説明し、それを解決するためにこれまでに何が行われているかを記述します。 – nullpointer

+0

検索すると、ここではループによる入力検証について多くの質問があります。そして、はい、[ 'String.contains'](http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#contains-java.lang.CharSequence-) – khelwood

答えて

1

は、私がfor-eachループをお勧めしますブール値

input.contains(",") 
+0

感謝を使いますwhileループを使用するとどうなりますか?その反対側には? ANC2017 @ – ANC2017

+0

'input.contains( " ")の反対の' '!input.contains("、 ")である' – khelwood

+0

おかげでC 'は 'char'ある' – ANC2017

-1

forループはこのような状況に最適です。しかし、あなたはあなたの好みのループを使ってこの問題を解決することができます。ループ

のために使用して

ソリューションは、あなたが得る文字列が変数string1の中で

enterdata: //ask for user to enter the string here 
     for(int i=0;i<string1.length();i++){ 
      char c = string1.charAt(i); 
      if(",".equals(c)) 
       continue correct; 

      } 
       if(true) continue enterdata; //this is just like goto statement 
     correct: 

     //write your code here 
+0

をkhelwood、 '"、"。は、(Cに等しいです。 ) 'は決して真実ではありません。文字列は 'char'と決して等しくありません。 – khelwood

+0

もし私がequalsの代わりに==と比較したらそれはうまくいくのでしょうか? –

関連する問題