8

我必须使用Scanner,所以有没有可以使用的nextChar()替代nextLine()方法?

谢谢!

4

4 回答 4

6

如果您必须使用 a Scanner(如您在编辑中所述),请尝试以下操作:

myScanner.useDelimiter("(?<=.)");

现在myScanner应该逐字阅读。


您可能想改用 a BufferedReader(如果可以的话) - 它有一个read读取单个字符的方法。例如,这将读取并打印文件的第一个字符:

BufferedReader br = new BufferedReader(new FileReader("somefile.txt"));
System.out.println((char)br.read());
br.close();
于 2012-11-13T22:36:44.303 回答
2

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

于 2012-11-13T22:37:09.577 回答
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();
            }
        }
    }
于 2012-11-13T22:40:36.233 回答
0

如果您致力于使用,Scanner那么您可以使用next(String pattern).

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

上面返回String长度为 1 的 a ——也就是说,你得到一个字符,但是作为一个字符串。

于 2012-11-13T22:40:22.663 回答