gpt4 book ai didi

java - 扫描仪,使用分隔符

转载 作者:行者123 更新时间:2023-12-03 03:24:05 29 4
gpt4 key购买 nike

我在使用 Scanner 类中的 useDelimiter 时遇到一些问题。

Scanner sc = new Scanner(System.in).useDelimiter("-");
while(sc.hasNext())
{
System.out.println(sc.next());
}

如果我有这个输入

A-B-C

输出将是

A B

然后等到我输入另一个“-”,它就会打印出最后一个字符

但是,如果我不让用户输入数据,而是将字符串插入到扫描仪中,则代码将起作用。这是什么原因,我该如何解决?我不想使用 StringTokenzier

最佳答案

如果扫描仪没有等待您输入另一个-,那么它会错误地认为您已完成输入。

我的意思是,扫描器必须等待您输入-,因为它无法知道下一个输入的长度。

因此,如果用户想要输入 A-B-CDE,而您在 C 处停下来喝了一口咖啡,则不会获得正确的输入。 (您期望 [ A, B, CDE ] 但它会得到 [ A, B, C ])

当您以完整的String形式传递它时,Scanner知道输入的结尾在哪里,并且不需要等待另一个分隔符。

我将如何做到这一点:

Scanner stdin = new Scanner(System.in);
String input = stdin.nextLine();
String[] splitInput = input.split("-", -1);

您现在将拥有一个 Strings 数组,其中包含所有 - 之间的数据。

Here is a link to the String.split() documentation for your reading pleasure.

关于java - 扫描仪,使用分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3493230/

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