Java数组和拆分方法

艾伦

每行代表长度,宽度和深度,我在操纵数组时遇到了麻烦,因为我必须将数字相乘才能找到体积。我已经阅读了文本文件,并使用split方法读取了每个数字。我要用另一种方法做的就是操纵数据,以便可以找到基本上乘以每个列号的卷。资料档案:

在此处输入图片说明

以下是我阅读和拆分方法的方式:

公共静态无效fileReader(String filename)抛出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(" ");
    }

}

然后我不知道如何操作数据。

里昂

首先,val由于while循环,文件中的每个新行都将覆盖对先前数组的引用,因此,在完全读取文件后,您无法访问从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]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章