我必须使用Scanner
,那么我可以使用nextChar()
代替nextLine()
方法吗?
谢谢!
答案 0 :(得分:6)
如果 使用Scanner
(如您在编辑中所述),请尝试以下操作:
myScanner.useDelimiter("(?<=.)");
现在myScanner
应逐字逐句阅读。
您可能希望使用BufferedReader
代替(如果可以) - 它有read
方法可读取单个字符。例如,这将读取并打印文件的第一个字符:
BufferedReader br = new BufferedReader(new FileReader("somefile.txt"));
System.out.println((char)br.read());
br.close();
答案 1 :(得分:2)
使用String.toCharArray()
将行拆分为字符。
答案 2 :(得分:2)
您可以转换为字符数组。
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();
}
}
}
答案 3 :(得分:0)
如果您承诺使用Scanner
,则可以使用next(String pattern)
。
String character = scanner.next(".");
以上返回长度为1的String
- 也就是说,你得到一个字符,但是作为一个字符串。