首页 文章

Java数组和拆分方法

提问于
浏览
-2

每行代表长度,宽度和深度,我无法操作数组,因为我必须将数字相乘才能找到音量 . 我已经阅读了文本文件并使用split方法读取每个数字 . 我想用另一种方法做的就是操纵数据,这样我就可以找到基本上乘以每列数的音量 . Data File:

enter image description here

以下是我如何阅读和拆分方法:

public static void fileReader(String filename)throws FileNotFoundException,IOException {FileReader fr = new FileReader(filename); BufferedReader textReader = new BufferedReader(fr);

String currLine;
    String [] val;
    while((currLine = textReader.readLine()) != null){
        System.out.println (currLine);
        val = currLine.split(" ");
    }

}

然后我不知道如何操纵数据 .

1 回答

  • 0

    首先,由于while循环,对 val 中前一个数组的引用将被覆盖文件中的每一个新行,因此在完全读取文件后,您无法访问第一行和第二行的split()返回的数组 . 可以使用二维双数组来存储读(和解析的(2))值(1)并将该数组中适当的三个值相乘以得到结果(3):

    String currLine = null;
        int numberOfEntries = 0;
        double[][] values = new double[3][];    // (1)
        for ( int i = 0; i < 3 && ( currLine = textReader.readLine() ) != null; i++ ) {
            String[] valuesInLine = currLine.split( " " );
    
            // Check whether every line contains the same number of numbers (except for first iteration)
            if ( i != 0 && numberOfEntries != valuesInLine.length ) {
                // for instance throw an exception...
            }
    
            numberOfEntries = valuesInLine.length;
            double[] valuesInLineParsed = new double[numberOfEntries];
            for ( int j = 0; j < numberOfEntries; j++ )
                valuesInLineParsed[j] = Double.parseDouble( valuesInLine[j] );        // (2)
    
            values[i] = valuesInLineParsed;
        }
    
        // Check whether the previous for loop counted to 3 and did not abort because of textReader.readLine() returning null
        if ( currLine != null ) {
            double[] results = new double[numberOfEntries];
            for ( int i = 0; i < numberOfEntries; i++ )
                results[i] = values[0][i] * values[1][i] * values[2][i];        // (3)
    
            System.out.println( Arrays.toString( results ) );
        }
    

    哪个打印 [72.0, 211.25, 38.4, 24.0, 10.5]

相关问题