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