gpt4 book ai didi

java - 扫描仪永远不会停止从键盘读取

转载 作者:行者123 更新时间:2023-12-01 17:50:38 25 4
gpt4 key购买 nike

下面的代码为什么会进入无限循环?我以为它会显示我输入的第一个短语,但他从未停止从键盘上阅读。1-为什么?2-如何才能只读一次?

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);

System.out.println("Type anything: ");

while(scan.hasNext()) {
System.out.println("Token: " + scan.next());
}

System.out.println("-------------------------");
scan.close();
}
}

最佳答案

扫描仪正在等待“文件结束”条件,我只能通过使用扫描仪读取文件来获取此 EOF 条件。如果您只想读取输入一次并打印它,那么您可以执行以下操作:

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);

System.out.println("Type anything: ");
System.out.println("Token: " + scan.next());
System.out.println("-------------------------");
scan.close();
}

您还可以给它一个停止条件:

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);

System.out.println("Type anything: ");
String input = scan.next();

while(!input.equals("exit")){
System.out.println("Token: " + input);
System.out.println("\nType anything: ");
input = scan.next();
}
scan.close();
}

我以前从文件中读取的内容:

public static void main(String[] args) {

File file = new File("random_text_file.txt");

try {

Scanner scanner = new Scanner(file);

while (scanner.hasNext()) {
String word = scanner.next();
System.out.println(word);
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}

关于java - 扫描仪永远不会停止从键盘读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50557976/

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