Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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
Java 按行打印数组的内容&;柱状_Java_Java.util.scanner - Fatal编程技术网

Java 按行打印数组的内容&;柱状

Java 按行打印数组的内容&;柱状,java,java.util.scanner,Java,Java.util.scanner,以下是代码: import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class ReadFileContents { public static void main(String[] args) throws IOException { Scanner s = new S

以下是代码:

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ReadFileContents {
    public static void main(String[] args) throws IOException {
    Scanner s = new Scanner(new File("rfg.txt"));
    List<float[]> list = new ArrayList<float[]>();
    while (s.hasNextLine()) {
        String[] line = s.nextLine().split(" ");
        list.add(new float[] { Float.parseFloat(line[0]),Float.parseFloat(line[1]),Float.parseFloat(line[2]) });
        }  
        int numberOfRows = list.size();
        int numberOfColumns = 3; 
        float[][] floatValues = new float[numberOfRows][numberOfColumns];
        for (int i = 0; i < numberOfRows; i++) {
            floatValues[i] = list.get(i);
            System.out.println(floatValues[i][0] + " " + floatValues[i][1] + " " + floatValues[i][2]);
            }
        }   
 }
它只给出了3列的o/p:


但是我想打印与file中给定的维度相同的文件(具有“n*m”维度的文件)。可以根据给定的文件更改维度。

如果我理解正确,您希望使用浮点值矩阵解析文件。您希望通过读取文件并将其存储在
float[][]
中来确定尺寸。我相信你想要的是:

File file = new File("rfg.txt");
List<float[]> list = new ArrayList<float[]>();
Scanner scanner = new Scanner(file).useDelimiter("\n");
while (scanner.hasNext()) {
    String[] values = scanner.next().trim().split(" ");
    float[] floats = new float[values.length];
    for (int i = 0; i < values.length; i++) {
        floats[i] = Float.parseFloat(values[i]);
    }
    list.add(floats);
}

float[][] values = new float[list.size()][];
for (int i = 0; i < list.size(); i++) {
    values[i] = list.get(i);
    for (int j = 0; j < values[i].length; j++) {
        System.out.print(values[i][j] + " ");
    }
    System.out.println();
}
File File=new文件(“rfg.txt”);
列表=新的ArrayList();
Scanner Scanner=新的扫描仪(文件).useDelimiter(“\n”);
while(scanner.hasNext()){
字符串[]值=scanner.next().trim().split(“”);
float[]floats=新的float[values.length];
对于(int i=0;i
您只能从文本文件中读取3列。如果列数是动态的,则可以使用如下循环:

  while (s.hasNextLine()) {
    String[] line = s.nextLine().split(" ");
    float[] f = new float[line.length];
    for(int i = 0; i < line.length; i++){
        float[i] = float.parseFloat(line[i]);
    } 
    list.add(f);
    numColumns = line.length;
  }
while(s.hasNextLine()){
String[]line=s.nextLine().split(“”);
float[]f=新的float[line.length];
对于(int i=0;i

这样,列数就变成了文件中的列数。

代码给出了三列,因为您只分析了三个字段?我还是不明白你的问题。是否要再次打印相同的内容?
  while (s.hasNextLine()) {
    String[] line = s.nextLine().split(" ");
    float[] f = new float[line.length];
    for(int i = 0; i < line.length; i++){
        float[i] = float.parseFloat(line[i]);
    } 
    list.add(f);
    numColumns = line.length;
  }