我有一台扫描仪,并设置分隔符为“”,但它仍然不会与next()方法读取空格。 我知道nextline()的作品,但我需要逐个检查输入的每一个字符,包括空格; 它是一个复杂的数据分析问题。 我很为难,虽然。 谷歌已经变成了什么。
谁能帮我这个? 我想倒车空白成特殊字符,然后分析字符的目的,扭转它放回一个空格,字符串中包含的...这似乎矫枉过正的方式虽然! 是否有这样做的更优雅的方式?
编辑:我的主要任务是,采取一个串,过目一下字符一个字符,多次,以检查各项任务的数据。 你必须检查了很多次,每次一个字符,所以我认为扫描仪类将是我最好的选择,因为它可以容易的工作(至少对我来说)。 这是我的任务。 是否有更简单的方法来进行此事?
Scanner scanner = new Scanner(file).useDelimiter("'")
但是,这是非常低效的。 更好的办法,就是:通过字符读取字符:
private static void readCharacters(Reader reader)
throws IOException {
int r;
while ((r = reader.read()) != -1) {
char ch = (char) r;
doSomethingWithChar(ch);
}
}
另请参见这里
尝试.useDelimiter("(\\b|\\B)")
它会利用每一个字符的边界作为分隔符。
键入的内容用户将下面的代码完全相同打印。 没有字符将被忽略,包括空格。
Scanner charScanner = new Scanner( System.in ).useDelimiter( "(\\b|\\B)" ) ;
while( charScanner.hasNext() )
System.out.print( charScanner.next() ) ;
使用BufferedReader
读取一行输入,然后遍历字符串中for
循环,每个工作char
。
您可以检查一个字符是否是一个空白的Character.isWhitespace(char c)