gpt4 book ai didi

java - Scanner.next() 可以返回 null 或空字符串吗?

转载 作者:行者123 更新时间:2023-12-01 16:47:19 29 4
gpt4 key购买 nike

我正在从其他编程语言(Js、C 等......)学习 Java

我想知道在任何情况下是否Scanner.next()方法可以返回(不抛出)无效字符串或少于一个字符(即 null 或空字符串 "" )。我习惯于仔细检查用户输入是否有任何可能的意外/无效值,但我想知道是否测试 nullmyString.length() < 1总是不必要的或者可能有用/需要。

我特别询问从命令行读取和 System.in 时的情况,而不是来自其他文件流。我可以安全地获得第一个字符 myString.charAt(0)从终端输入正常读取时的返回值(即没有管道和文件,直接从终端和键盘)?

我搜索了 Java SE 9 API 文档,但找不到有关可能意外返回值的提及。如果输入出现任何问题,它应该抛出异常,对吗?

示例(没有导入的主方法的一部分):

Scanner keyboard = new Scanner(System.in);

System.out.print("Enter a selection (from A to E): ");
String res = keyboard.next();

if (res == null || res.length() < 1) {
// Unnecessary if?
}

最佳答案

Scanner#next 永远不能返回 null,并且如果用户输入空字符串或包含空格的字符串,则该方法将阻塞并等待输入进行扫描。

因此 if 条件是多余的,根本不需要。

关于java - Scanner.next() 可以返回 null 或空字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47971568/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com