检测stdin的空输入

时间:2013-11-08 00:18:04

标签: java io java.util.scanner stdin

我正在尝试检测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.*;

请注意,它在主方法中确实有一个工作扫描器。

1 个答案:

答案 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;
    }