gpt4 book ai didi

java - JAVA输入空字符串的方法

转载 作者:行者123 更新时间:2023-12-01 18:07:05 37 4
gpt4 key购买 nike

我的程序应该检查 s 是否为空字符串,如果发现是空字符串,则应打印“空字符串”并提示输入新内容。但我每次第一次运行时都不会询问 s,都会打印“空字符串”,然后它就完美运行了!

Scanner input = new Scanner(System.in);
int t = input.nextInt();
while (t > 0) {
String s;
s = input.nextLine();
if (s.isEmpty()) {
System.out.println("Empty string");
s = input.nextLine();
}
}

如何避免出现第一个“空字符串”?

PS-我试过了-

s = input.next();

这解决了问题,但现在它不允许我在程序中输入空字符串!

PPS - 看看这个:

import java.util.*;
import java.lang.*;
import java.io.*;

class ComparePlayers {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int t = input.nextInt();
while (t > 0) {
String s;
s = input.nextLine();
if (s.isEmpty()) {
System.out.println("Empty String");
s = input.nextLine();
}
else {
System.out.println("Not Empty");
}
t--;
}
}
}

您可以看到有 3 个 i/ps,而其中一个 o/ps 被空字符串占用。

最佳答案

这是因为 Scanner.nextInt() 方法无法读取按“<”生成的“\n”(换行)字符在终端输入中写入数字后em>Enter'。一个简单的解决方法是使用 input.nextLine() 读取“\n”字符,并在使用 Scanner.nextX() 后立即忽略它> 方法(例如 nextInt()、nextDouble() 等)

所以你的代码更改为:

Scanner input = new Scanner(System.in);
int t = input.nextInt();
input.nextLine(); // read and ignore extra \n character

while (t > 0) {
String s;
s = input.nextLine();
if (s.isEmpty()) {
System.out.println("Empty string");
s = input.nextLine();
}
}

关于java - JAVA输入空字符串的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60542523/

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