2017-01-30 120 views
-2

我需要验证用户输入字符串以确保它包含逗号。如果它不包含逗号,则它必须打印“错误”并允许用户重新输入。我只是不确定要使用哪个循环。如果其他人可以工作,但我需要它循环回扫描仪以供用户输入。或者使用.contains的while循环?谢谢。为字符循环检查字符串

+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循环:

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

有可能会是“(字符)string.contains”内置在Java中此功能,如返回布尔值

input.contains(",") 
+0

谢谢,如果我使用了一个while循环呢? .contains有相反之处吗? – ANC2017

+0

@ ANC2017'input.contains(“,”)'的反义词是'!input.contains(“,”)' – khelwood

+0

Thanks khelwood – ANC2017

-1

for循环将最适合这种情况。但是你可以使用任何你喜欢的循环来解决这个问题。使用循环

解决方案可以说你得到的字符串是在一个变量字符串1

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

其中'c'是'char','“,”。equals(c )'永远不可能是真的。字符串永远不会等于'char'。 – khelwood

+0

它会工作,如果我与==而不是等于比较? –