我有一个文本文件,如下所示:
A B C D
A 5 7 10 2
B 1 5 4 20
C 10 1 8 4
D 5 7 4 2
所以它应该是一个矩阵,我想做的是:
1)获取矢量名称(可以通过读取第一行轻松完成)。
2)仅显示数字。
3)将数字存储在2D数组中。
我已经完成了第一步,仍然是第二步和第三步。
这是我的代码:
LectureFichier.java:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class LectureFichier {
public void lireFichier() {
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("myFile"));
sCurrentLine = br.readLine();
System.out.println("*******************Lignes*******************");
String[] nomsAuteurs = sCurrentLine.split(" ");
for(String auteur : nomsAuteurs) {
System.out.println(auteur);
}
System.out.println("*******************Colonnes*******************");
while ((sCurrentLine = br.readLine()) != null) {
String[] colonnes = sCurrentLine.split(" ");
for(String colonne : colonnes) {
System.out.println(colonne);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
Main.java:
public class Main {
public static void main(String[] args) {
LectureFichier lectureFichier = new LectureFichier();
lectureFichier.lireFichier();
}
}
当我运行此代码时,它会给我一个这样的结果:
A57102B15420C10184D5742
正是因为这个问题:
for(String colonne : colonnes) {
System.out.print(colonne);
}
println(colonne)
将每个拆分放在不同的行中。
我现在想要的是能够拥有这样的东西:
5 7 10 2
1 5 4 20
10 1 8 4
5 7 4 2
我做错了什么?我该如何解决?
谢谢!
答案 0 :(得分:1)
你的代码应该是,
while ((sCurrentLine = br.readLine()) != null) {
String[] colonnes = sCurrentLine.split(" ");
for(int i=1; i<colonnes.length; i++ ) {
System.out.print(colonnes[i]+ " ");
}
System.out.println();
}
表示您期望的输出。
您应该在for循环中打印一行中的所有元素,然后为从该文件中读取的下一行打印换行符。