java扫描程序,useDelimiter
我在使用Scanner类中的useDelimiter时遇到了一些问题
Scanner sc = new Scanner(System.in).useDelimiter("-");
while(sc.hasNext())
{
System.out.println(sc.next());
}
如果我有这个输入
A-B-C
输出将是
A B
然后等到我再输入一个“-”,它就会打印出最后一个字符
然而,如果我不让用户输入数据,而是向扫描器插入一个字符串,代码就会工作。原因是什么?我该如何修复它?我不想用StringTokenzier
# 1 楼答案
您可以使用另一个分隔符字符串
useDelimiter( "-|\n" );
它既可以使用字符串参数,也可以通过读取System.in
来工作。 在系统的情况下。在这种情况下,需要在行尾按enter键# 2 楼答案
我将如何做到这一点:
现在将有一个
Strings
数组,其中包含所有-
之间的数据# 3 楼答案
如果
Scanner
没有等待您输入另一个-
,那么它会错误地认为您已经完成了输入我的意思是,
Scanner
必须等待您输入-
,因为它无法知道下一个输入的长度因此,如果用户想输入
A-B-CDE
,而你在C
停下来喝了一口咖啡,它就不会得到正确的输入。(你期望[ A, B, CDE ]
,但它会得到[ A, B, C ]
)当您以完整的
String
传递它时,Scanner
知道输入的结尾在哪里,不需要等待另一个分隔符我将如何做到这一点:
现在将有一个
Strings
数组,其中包含所有-
之间的数据Here is a link to the ^{} documentation for your reading pleasure.