如何在使用split后验证输入单词的数量?

时间:2015-08-31 18:51:14

标签: java

我正在尝试验证只有三个单词的输入,因此如果用户输入的内容越来越少,程序会再次提示相同的问题。

我是如何进行单词输入的?我正在使用BufferedReader并按每个空格(“”)拆分我的字符串...所以每个空格都意味着一个新单词。

但是如何控制要输入的单词数量呢?

我编码了这个:

    InputStreamReader st = new InputStreamReader(System.in);
    BufferedReader bf = new BufferedReader(st);



    System.out.println("Enter 3 words");
    String words = bf.readLine();
    String split[] = words.split(" ");


    do
    {

        System.out.println("Enter only 3 words");
        words = bf.readLine();
        String split[] = words.split(" ");



    }while(split.length > 3);

2 个答案:

答案 0 :(得分:1)

只需使用!=比较器而不是>

while(split.length != 3)

此外,您在do-while循环中覆盖了split[]数组。不要创建新数组,使用您之前创建的相同变量。如果第一次输入正确的单词数,这也可以防止出现多个提示。

InputStreamReader st = new InputStreamReader(System.in);
BufferedReader bf = new BufferedReader(st);

String words;
String[] split;

do
{
   System.out.println("Enter 3 words");
   words = bf.readLine();
   split = words.split(" ");

}while(split.length != 3);

答案 1 :(得分:1)

使用split.length(),您拥有数组中的单词数,因此,您可以创建一个条件。像这样:

do{
  //do stuff
}while(split.length != 3);