本文介紹了在Java中訪問文本文件的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我正在嘗試訪問Java中的文本文件,但是我不知道如何做到這一點(diǎn)并將其應(yīng)用于2D數(shù)組。我以前做過豬拉丁編碼分配中的字符串
E.x:
public static void piglatenizeFile(Scanner infile, String filename) throws IOException{
PrintWriter outFile = new PrintWriter(filename);
while(infile.hasNext()){
String s = infile.nextLine();
String p = pig(s);
outFile.println(p);
}
outFile.close();
}
然而,這是我必須做的:
/* creates scanner for filename
creates 2D array based on row/col
and characters in file
*/
public static char[][] read(String filename) throws FileNotFoundException{
}
它如何使用二維數(shù)組?
推薦答案
JAVA沒有二維數(shù)組。它只有數(shù)組。當(dāng)然,如果你有一個(gè)數(shù)組,它的組件類型也是一個(gè)數(shù)組,它的行為很像一個(gè)二維數(shù)組,盡管它不是。例如,在Java中,沒有任何類型描述數(shù)組的數(shù)組,以至于它是矩形的。您可以擁有:
char[][] x = ...;
x[0].length == 5;
x[1].length == 7;
,它不是二維數(shù)組。char[][]
只是一個(gè)一維數(shù)組,其組件為char數(shù)組。
有一些非常基本的語法可用:new char[10][20]
是:創(chuàng)建一個(gè)包含10個(gè)數(shù)組的字符數(shù)組的新數(shù)組。然后,對(duì)于每個(gè)插槽,執(zhí)行new char[20]
并將結(jié)果分配給該插槽。
但不要讓這讓你感到困惑。這只是速記,僅此而已。只是:
char[][] x = new char[20][10];
和
char[][] x = new char[20][];
for (int i = 0; i < x.length; i++) {
x[i] = new char[10];
}
它相同(事實(shí)上,甚至在字節(jié)碼級(jí)別)。2D數(shù)組并不存在,因此您不需要浪費(fèi)腦力并了解它們是什么。您只需了解上述語法,并始終對(duì)代碼進(jìn)行推理,知道2D數(shù)組并不是真正的東西,它們只是數(shù)組的數(shù)組。
記住這一點(diǎn),您可以使用您已有的技能自己回答此問題。
,并且知道"foo".toCharArray()
將字符串轉(zhuǎn)換為字符數(shù)組。就數(shù)組賦值而言,字符數(shù)組和字符串沒有區(qū)別:
String[]
是一維數(shù)組,只允許您在其中賦值String
類型的表達(dá)式。
char[][]
是一維數(shù)組,只允許您在其中賦值char[]
類型的表達(dá)式。
String
只是一個(gè)對(duì)象類型。char[]
也是如此。數(shù)組是對(duì)象。
someStr.toCharArray()
是char[]
類型的表達(dá)式。
這篇關(guān)于在Java中訪問文本文件的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,