有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中解析字符

My file
ABABCCC

我的java代码:

        BufferedReader br = new BufferedReader(new FileReader("My file"));

        StringTokenizer sr = new StringTokenizer(br.readLine());
        char[] problem = null;
        int i = 0;
        while(sr.hasMoreTokens())
        {
            problem[i] = sr.nextToken();
            i++;
        }

期望输出:

problem[0] = 'A'
problem[1] = 'B'
and so on

请在这方面帮助我,并为我提供一个很好的方法


共 (3) 个答案

  1. # 1 楼答案

    您不应该使用来自Javadoc的^{}-

    StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

    如果我明白你想做什么,这里有一种方法可以用^{}^{}-

    Scanner sc;
    char[] problem = null;
    try {
        sc = new Scanner(new File("My file"));
        if (sc.hasNext()) {
            problem = sc.next().toCharArray();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    System.out.println(Arrays.toString(problem));
    
  2. # 2 楼答案

    此数据不需要StringTokenizer。只需将文件中的数据读入String并将其转换为char数组

    String line = br.readLine();
    char[] problem = line.toCharArray();
    

    如果文件中有多行,或者需要解析多个标记,则只需要一个循环来读取这些数据

  3. # 3 楼答案

    StingTokenizer不会用字符分割一行,它会用等同于句子中单词的标记来分割Here是该类的一个示例用法

    可以将整行存储为字符串,然后将其转换为已设置的字符数组

    String fileInput = br.readLine();
    char[] problem = fileInput.toCharArray();