Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果用户输入带有多个空格的字符串,如何重新提示用户输入_Java_String_Input_Whitespace - Fatal编程技术网

Java 如果用户输入带有多个空格的字符串,如何重新提示用户输入

Java 如果用户输入带有多个空格的字符串,如何重新提示用户输入,java,string,input,whitespace,Java,String,Input,Whitespace,因此,我想知道如何检查用户输入的字符串是否有多个空格,如果它的单词之间有多个空格,我希望重新提示用户输入。我使用的是do-while循环。格式如下: Scanner scanner01 = new Scanner(System.in); String inputLast; do { System.out.println("Enter a valid LAST name: "); inputLast = scanner01.nextLine(); } while() 有关如何用单

因此,我想知道如何检查用户输入的字符串是否有多个空格,如果它的单词之间有多个空格,我希望重新提示用户输入。我使用的是do-while循环。格式如下:

Scanner scanner01 = new Scanner(System.in);
String inputLast;
do {
    System.out.println("Enter a valid LAST name: ");
    inputLast = scanner01.nextLine();
} while()

有关如何用单个空格替换多个空格的说明,请参见。

一种解决方案是(基于此):

scannerScanner01=新扫描仪(System.in);
字符串输入;
做{
System.out.println(“输入有效的姓氏:”);
inputLast=scanner01.nextLine();

如果(inputLast.length()-inputLast.replaceAll(“,”).length(),为什么不删除额外的空格,而不是用它来烦扰用户呢?因为输入可以在单词之间至少有一个连续的空格。当用户输入两个连续的空格时,应该是出现错误的时候。
   Scanner scanner01 = new Scanner(System.in);
   String inputLast;
   do {
       System.out.println("Enter a valid LAST name: ");
       inputLast = scanner01.nextLine();
       if(inputLast.length() - inputLast.replaceAll(" ", "").length() <= 1){
           break;
       }
   } while(true);
String str = "Sam  ple";
Pattern pattern = Pattern.compile("\\s{2,}");
Matcher matcher = pattern.matcher(str);
boolean check = matcher.find();