我正在尝试检测stdin中的一行是否为空,我不知所措。以下是我一直试图使用的代码,但它没有检测到该行何时为空和/或它是否只有空格。任何人都可以帮我看看我做错了什么?
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.*;
请注意,它在主方法中确实有一个工作扫描器。
答案 0 :(得分:1)
变化:
wordSP.trim();
为:
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;
}