如何拆分字符串,整数等并在java中计算?

时间:2015-12-04 02:24:16

标签: java io split count

我已经将一个简单的程序作为分隔符创建了一个值。现在,我的项目中有三个文件。它的kompil.java,input.txt,output.txt。

我希望input.txt作为源输入和output.txt打印出来。但是,它应该是一个计数器的每个类型值。

这是我的input.txt:

Z=((2+B)250+B-A+MN)/2-256*10

我希望output.txt中的输出像这样:

VARIABLE
Z:1
B:2
A:1
MN:1

OPERATOR
(:2
):2
+:3
=:1
-:2
/:1
*:1

NUMBER
2:2
250:1
256:1
10:1

但是,我不知道如何制作这样的输出。我曾尝试过拆分方法但是。卡住。 请给我任何想法。

这是我的kompil.java代码:

import java.io.*;
import java.util.Arrays;
public class kompil {
    public static void main(String[] args){

        String fileName = "src/input.txt";
        String line = null;
        try {
            FileReader fileReader = 
                    new FileReader(fileName);
            BufferedReader bufferedReader = 
                    new BufferedReader(fileReader);
            while((line = bufferedReader.readLine()) != null) {
char[] chars=line.toCharArray();
Arrays.sort(chars);
String out = new String(chars);
                PrintStream ps = new PrintStream("src/output.txt");
                PrintStream orig = System.out;
                System.setOut(ps);
                System.out.println(out);
                System.setOut(orig);
                ps.close();
            }   
            bufferedReader.close();         
        }
        catch(FileNotFoundException ex) {
            System.out.println(
                    "Unable to open file '" + 
                    fileName + "'");                
        }
        catch(IOException ex) {
            System.out.println(
                    "Error reading file '" 
                    + fileName + "'"); 
        }
    }
}

继续代码的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

您已将其拆分为行{{1}}中的字符。不要对该数组进行排序(请参阅下一行)。相反,这是您应用在课堂上学到的内容的地方。仔细看看Character类的静态函数,比如Character.isDigit(char)来解释每个字符,也许还有ArrayList对象来跟踪你识别的每种类型的令牌。