如何使用Scanner按字符读取输入文件?

8

我需要使用Scanner, 请问是否有nextChar()方法可供使用,而不是使用nextLine()方法?

谢谢!

4个回答

6
如果你必须使用Scanner(就像你在编辑中提到的那样),请尝试以下方法:
myScanner.useDelimiter("(?<=.)");

现在,myScanner应该逐个字符读取。
如果可以的话,您可能想使用BufferedReader - 它有一个读取单个字符的read方法。例如,这将读取并打印文件的第一个字符:
BufferedReader br = new BufferedReader(new FileReader("somefile.txt"));
System.out.println((char)br.read());
br.close();

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();
            }
        }
    }

2

使用String.toCharArray()将行拆分为字符。


0

如果您决定使用Scanner,那么可以使用next(String pattern)

String character = scanner.next(".");

以上返回一个长度为1的字符串 - 也就是说,您得到了一个字符,但作为一个字符串。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接