Java 检测来自标准输入的空输入
我试图检测标准输入的一行是否为空,我不知所措。下面是我一直在尝试使用的代码,但它没有检测行何时为null和/或是否只有空格。谁能帮我看看我做错了什么Java 检测来自标准输入的空输入,java,io,java.util.scanner,stdin,Java,Io,Java.util.scanner,Stdin,我试图检测标准输入的一行是否为空,我不知所措。下面是我一直在尝试使用的代码,但它没有检测行何时为null和/或是否只有空格。谁能帮我看看我做错了什么 public static String scanPrint(Scanner stdinSP) { String wordSP = null; while (stdinSP.hasNext()) { wordSP = stdinSP.next(); wordSP.trim(); if
public static String scanPrint(Scanner stdinSP) {
String wordSP = null;
while (stdinSP.hasNext()) {
wordSP = stdinSP.next();
wordSP.trim();
if (wordSP.length() == 0) {
out.println("fail");
break;
} else {
out.println("success");
break;
}
}
out.println(wordSP); //debug
return wordSP;
}
我只能使用以下导入语句:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Scanner;
import static java.lang.Integer.*;
import static java.lang.String.*;
import static java.lang.System.*;
注意:主方法中有一个工作扫描仪。更改:
wordSP.trim();
致:
完整代码:
public static String scanPrint( )
{
Scanner stdinSP = new Scanner(System.in);
String wordSP = null;
while(true)
{
if((wordSP = stdinSP.nextLine().trim()).length() == 0)
{
System.out.println("fail");
break;
}
else
{
System.out.println("success");
break;
}
}
System.out.println(wordSP); //debug
return wordSP;
}
更改:
wordSP.trim();
致:
完整代码:
public static String scanPrint( )
{
Scanner stdinSP = new Scanner(System.in);
String wordSP = null;
while(true)
{
if((wordSP = stdinSP.nextLine().trim()).length() == 0)
{
System.out.println("fail");
break;
}
else
{
System.out.println("success");
break;
}
}
System.out.println(wordSP); //debug
return wordSP;
}
wordSP.trim()代码>=>wordSP=wordSP.trim()
您可以将while
替换为if
并删除break
语句@alfasin-你应该把它作为一个答案发布。wordSP.trim()代码>=>wordSP=wordSP.trim()
您可以将while
替换为if
并删除break
语句@alfasin-您应该将其作为答案发布。我刚刚尝试了这个,但它没有改变输出的任何内容。@user2967087将调试打印移到开头:out.println(wordSP)代码>我把它移到了开头,但它似乎什么都没做。我进入一个空间,什么也没发生,它只是移动到下一行。当我输入一个有效的条目时,它会按预期工作。@user2967087听起来像是按预期工作-你期望它做什么?它没有工作。当我输入正确的输入时,当它被认为是“成功”时,它返回为“失败”,然后当有一个空间时,它不做任何事情,而是继续执行程序。我只是尝试了一下,但它没有改变输出。@user2967087将调试打印移到开头:out.println(wordSP)
我将它移到了开头,但它似乎没有任何作用。我输入了一个空格,但什么也没有发生,它只是移到了下一行。当我输入一个有效的条目时,它按预期工作。@user2967087听起来像它应该工作的样子-你期望它做什么?它没有工作。当我输入正确的输入时,它返回为当它被认为是“成功”时,“失败”,然后当有一个空间时,它什么也不做,而是继续程序,因为它已经存在了。