【问题标题】:How to read an input file char by char using a Scanner?如何使用扫描仪逐字符读取输入文件?
【发布时间】:2012-11-02 10:21:18
【问题描述】:

我必须使用Scanner,那么我可以使用nextChar() 代替nextLine() 的方法吗?

谢谢!

【问题讨论】:

    标签: java input io


    【解决方案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();
                      }
                  }
              }
          

          【讨论】:

            猜你喜欢
            • 2018-03-18
            • 1970-01-01
            • 2023-03-17
            • 2013-12-04
            • 1970-01-01
            • 2012-12-06
            • 2022-01-07
            相关资源
            最近更新 更多