sta*_*orn 2 java java.util.scanner
使用Scanner类中的useDelimiter时遇到一些问题.
Scanner sc = new Scanner(System.in).useDelimiter("-");
while(sc.hasNext())
{
System.out.println(sc.next());
}
Run Code Online (Sandbox Code Playgroud)
如果我有这个输入
ABC
输出将是
AB
等到我输入另一个" - "表示打印出最后一个字符
但是,如果我没有用户输入数据,而是将字符串插入扫描程序,则代码将起作用.它是什么原因,我该如何解决?我不想使用StringTokenzier
如果Scanner没有等你输入另一个,-那么它会错误地认为你输入了输入.
我的意思是,Scanner必须等你输入a,-因为它无法知道下一个输入的长度.
因此,如果用户想要输入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);
Run Code Online (Sandbox Code Playgroud)
现在,您将拥有一个Strings包含所有-s 之间数据的数组.
| 归档时间: |
|
| 查看次数: |
18151 次 |
| 最近记录: |