用C风格在Java中解析?

用C风格在Java中解析?,java,text-parsing,line-processing,Java,Text Parsing,Line Processing,我不熟悉java文本解析,我想知道当每行的格式已知时,解析文件的最佳方式是什么 我有一个文件,每行的格式如下: public static void main(String args[]) { try { // Open the file that is the first // command line parameter FileInputStream fstream = new FileInputStream("textfile.tx

我不熟悉java文本解析,我想知道当每行的格式已知时,解析文件的最佳方式是什么

我有一个文件,每行的格式如下:

public static void main(String args[]) {
    try {
        // Open the file that is the first
        // command line parameter
        FileInputStream fstream = new FileInputStream("textfile.txt");
        // Get the object of DataInputStream
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;
        // Read File Line By Line
        while ((strLine = br.readLine()) != null) {
            // Print the content on the console             
            System.out.println(strLine);
        }
        // Close the input stream
        in.close();
    } catch (Exception e) {// Catch exception if any
        System.err.println("Error: " + e.getMessage());
    }   
 }
Int;双弦;双弦;双弦;双弦;双弦

请注意字符串double如何作为一对,用逗号分隔,每对用分号分隔

举几个例子:

1;art,0.1;computer,0.5;programming,0.6;java,0.7;unix,0.3 2;291,0.8;database,0.6;computer,0.2;java,0.9;undegraduate,0.7 3;coffee,0.5;colombia,0.2;java,0.1;export,0.4;import,0.5 提前感谢:)

对于初学者,您可以使用该课程:

一个简单的文本扫描器,可以使用正则表达式解析原语类型和字符串

首先,您可以使用该类:

一个简单的文本扫描器,可以使用正则表达式解析原语类型和字符串


如果您确实在尝试进行“C”式解析,那么包含为“next”字段累积的字符的缓冲区在哪里?哪里是检查字段分隔符是否已读取的检查,哪里是读取行尾/字段分隔符后将当前字段刷新为正确数据结构的代码

Java中的逐字符读取循环如下所示

int readChar = 0;
while ((readChar = in.read()) != -1) {
   // do something with the new readChar.
}

如果您确实在尝试进行“C”式解析,那么包含为“next”字段累积的字符的缓冲区在哪里?哪里是检查字段分隔符是否已读取的检查,哪里是读取行尾/字段分隔符后将当前字段刷新为正确数据结构的代码

Java中的逐字符读取循环如下所示

int readChar = 0;
while ((readChar = in.read()) != -1) {
   // do something with the new readChar.
}

您可以提供一个模式并使用

String input=“fish1-1 fish2-2”;
java.util.Scanner s=新的java.util.Scanner(输入);
s、 findInLine(“(\\d+)”;
java.util.regex.MatchResult=s.match();

对于(inti=1;i您可以提供一个模式并使用

String input=“fish1-1 fish2-2”;
java.util.Scanner s=新的java.util.Scanner(输入);
s、 findInLine(“(\\d+)”;
java.util.regex.MatchResult=s.match();
对于(int i=1;i