如何使用扫描仪逐字符读取输入文件?
Posted
技术标签:
【中文标题】如何使用扫描仪逐字符读取输入文件?【英文标题】:How to read an input file char by char using a Scanner? 【发布时间】:2012-11-02 10:21:18 【问题描述】:我必须使用Scanner
,那么我可以使用nextChar()
代替nextLine()
的方法吗?
谢谢!
【问题讨论】:
【参考方案1】:如果您必须使用Scanner
(如您在编辑中所述),请尝试以下操作:
myScanner.useDelimiter("(?<=.)");
现在myScanner
应该逐个字符地读取。
您可能想改用BufferedReader
(如果可以的话) - 它有一个读取单个字符的read
方法。例如,这将读取并打印文件的第一个字符:
BufferedReader br = new BufferedReader(new FileReader("somefile.txt"));
System.out.println((char)br.read());
br.close();
【讨论】:
【参考方案2】:使用String.toCharArray()
将行拆分为字符。
【讨论】:
【参考方案3】:如果您致力于使用Scanner
,那么您可以使用next(String pattern)
。
String character = scanner.next(".");
上面返回一个长度为 1 的String
——也就是说,你得到一个字符,但是作为一个字符串。
【讨论】:
【参考方案4】:您可以转换为字符数组。
import java.io.*;
import java.util.Scanner;
public class ScanXan
public static void main(String[] args) throws IOException
Scanner s = null;
try
s = new Scanner(new BufferedReader(new FileReader("yourFile.txt")));
while (s.hasNext())
String str = s.next();
char[] myChar = str.toCharArray();
// do something
finally
if (s != null)
s.close();
【讨论】:
以上是关于如何使用扫描仪逐字符读取输入文件?的主要内容,如果未能解决你的问题,请参考以下文章