我不太確定自己需要什麼。但是我從問題中得出的結論是,你有一個文件,你需要將它分成一個二維數組,其中列應包含每行內的單個項目,每行應該在一個新行中。
我的建議是使用ArrayList
,它將爲您處理動態長度。
見下面的例子:當其形成2D陣列中的程序,包含第一尺寸
說我有一個文件「的text.txt」包含這樣
abc def ghi
jhl mnop qrs uv
wx yz
然後這裏的一些數據每行和第二維包含來自每行的標記。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class Split {
public static void main(String args[]){
ArrayList<ArrayList<String>> columns = new ArrayList<ArrayList<String>>();
columns.add(new ArrayList<String>());//Col 1
columns.add(new ArrayList<String>());//Col 2
columns.add(new ArrayList<String>());//Col 3
BufferedReader br = null;
try
{
br = new BufferedReader(new FileReader("src\\text.txt"));
String sCurrentLine;
int j=0;
while ((sCurrentLine = br.readLine()) != null) {
String sLine[] = sCurrentLine .split(" ");
for(int i = 0; i < sLine.length; i++)
{
columns.get(j).add(sLine[i]);
}
j++;
}
for(ArrayList<String> line:columns){
for(String tokens:line)
System.out.println(tokens);
System.out.println();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
如果這不是你所需要的,請儘量與實例進一步可能的話闡述你的問題。
請注意,我使用空格(「」)來分割令牌,您可以用您正在使用的任何東西來替換它。我希望它有幫助:)