Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Java数组与拆分方法_Arrays_Split - Fatal编程技术网

Arrays Java数组与拆分方法

Arrays Java数组与拆分方法,arrays,split,Arrays,Split,每一行代表长度、宽度和深度,我很难操纵数组,因为我必须乘以这些数字才能找到体积。 我已经读取了文本文件,并使用split方法读取每个数字。在另一种方法中,我想做的就是处理数据,这样我就可以找到基本上乘以每列数字的体积。 以下是我如何阅读和拆分该方法: 公共静态void文件读取器(字符串文件名)抛出FileNotFoundException、IOException{ FileReader fr=新的FileReader(文件名); BufferedReader textReader=新的Buf

每一行代表长度、宽度和深度,我很难操纵数组,因为我必须乘以这些数字才能找到体积。 我已经读取了文本文件,并使用split方法读取每个数字。在另一种方法中,我想做的就是处理数据,这样我就可以找到基本上乘以每列数字的体积。

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

公共静态void文件读取器(字符串文件名)抛出FileNotFoundException、IOException{ FileReader fr=新的FileReader(文件名); BufferedReader textReader=新的BufferedReader(fr)

}


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

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

字符串currLine=null;
int numberOfEntries=0;
双精度[]值=新的双精度[3][];//(1)
对于(int i=0;i<3&(currLine=textleader.readLine())!=null;i++){
字符串[]值行=currLine.split(“”);
//检查每行是否包含相同数量的数字(第一次迭代除外)
如果(i!=0&&numberOfEntries!=valuesInLine.length){
//例如,抛出一个异常。。。
}
numberOfEntries=value sinline.length;
double[]ValuesLineParsed=新的double[numberOfEntries];
对于(int j=0;j

它打印的是[72.0、211.25、38.4、24.0、10.5]

欢迎使用SO!不幸的是,你的问题有些模糊/难以回答。请回答您的问题,并添加示例输入、预期输出和迄今为止的代码。如果您需要,我可以链接该文件,以便您可以阅读它要求的内容。我不是在问答案,我只是需要帮助。
    String currLine;
    String [] val;
    while((currLine = textReader.readLine()) != null){
        System.out.println (currLine);
        val = currLine.split(" ");
    }
    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 ) );
    }