如何解决无法拆分来自“扫描仪”的输入
String command = scanner.next();
String[] split = command.split(" ");
System.out.println(split.length);
你好,有人知道为什么当我插入"a b c d e f g h i"
时会给我长度1吗?
解决方法
next()
读取输入直到空格(" "
),因此变量command
将是"a"
而不是"a b c d e f g h i"
您应该使用nextLine()
来读取输入内容,包括字母之间的空格:
Scanner scanner = new Scanner(System.in);
String command = scanner.nextLine();
String[] split = command.split(" ");
System.out.println(split.length);
有关更多信息,请查看doc。
,您只在一行中检索a而不是整行,请使用String命令= Scanner.nextLine();代替。
, next()
和nextLine()
方法是Scanner用于获取字符串输入的两种不同方法。
next()
只能读取输入,直到空格为止。它无法读取两个由空格分隔的单词。另外,next()
在读取输入后将光标置于同一行。
nextLine()
读取包含单词之间的空格的输入(即,读取直到\ n行的结尾)。读取输入后,nextLine()
将光标置于下一行。
因此,这里您应该使用nextLine()
而不是next()
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。