You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java新手求助:如何用while循环检查输入是否为空并重新提示?

解决Java中while循环检查用户空输入的问题

你用input.next()配合while(guess != null)判断无效的原因很明确:

  • Scanner.next()会自动跳过所有空白字符(空格、回车、制表符等),如果用户只输入空白内容,它会一直阻塞等待有效输入,永远不会返回null,所以这个判断逻辑完全起不到检查空输入的作用。

正确的实现方式应该用整行读取来捕获所有输入内容,再判断是否为空或仅含空白:

代码示例

import java.util.Scanner;

public class GuessInputHandler {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String guess;
        
        do {
            System.out.print("请输入你的猜测内容:");
            // 读取整行输入并去除首尾空白
            guess = input.nextLine().trim();
            if (guess.isEmpty()) {
                System.out.println("输入不能为空,请重新输入!");
            }
        } while (guess.isEmpty()); // 输入为空则循环提示
        
        System.out.println("你输入的猜测内容是:" + guess);
        input.close();
    }
}

补充说明

  • 如果你使用Java 11及以上版本,可以用guess.isBlank()替代trim().isEmpty(),它能直接判断字符串是否为空或仅包含空白字符,代码更简洁。
  • 避免混用next()和nextLine(),两者混用会因为Scanner缓冲区残留的换行符导致读取异常。

内容的提问来源于stack exchange,提问作者Neon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:20:38