简而言之:如何更改StreamTokenizer,以便它将输入文件中的每个字符拆分为令牌。

例如,如果我有以下输入:

1023021023584

如何读取它,以便每个单独的字符都可以保存到数组的特定索引?

最佳答案

您必须按如下所示调用StreamTokenizer.resetSyntax()方法

public static void main(String[] args) {
    try (FileReader fileReader = new FileReader("C:\\test.txt");){
        StreamTokenizer st = new StreamTokenizer(fileReader);
        st.resetSyntax();
        int token =0;
        while((token = st.nextToken()) != StreamTokenizer.TT_EOF) {
            if(st.ttype == StreamTokenizer.TT_NUMBER) {
                System.out.println("Number: "+st.nval);
            } else if(st.ttype == StreamTokenizer.TT_WORD) {
                System.out.println("Word: "+st.sval);
            }else {
                System.out.println("Ordinary Char: "+(char)token);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

09-27 02:23