亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的方法僅返回從 while 循環獲取的最后一個值

我的方法僅返回從 while 循環獲取的最后一個值

慕姐8265434 2023-11-10 15:27:17
我正在做一個作業,我們必須從文件中獲取字符并將其存儲在二維數組中。我們不允許在任何地方發布我們的代碼,所以我將使用偽代碼。如果不清楚,請告訴我。fillFromFile (parameters){    Scanner input = new Scanner(new FileReader(fileName));//from parameter    char[][] returnChar = new char[parm][parm];//gotten from parameters    String line = input.nextLine();    String[] spliter = null;    int count = 0;    while (input.hasNextLine and count < row) {        line = input.nextLine();        spliter = line.split(" ", 2);        count++;        for (int i = 0; to returncharLength; increment i) {            for (int j = 0; to returnchar[i]Length; increment j) {                returnChar[i][j] = spliter[0].charAt(j);            }        }       }    return returnChar;}如果我直接從方法中打印出來,則會顯示正確的值,但我們無法從方法中打印。已經有一個 toString() 方法可以處理這個問題。返回的二維數組只是最后一個字符。例如,如果這是預期值,r er eo pb n這就是返回的內容b nb nb nb n我嘗試過在返回之前和之后進行深度復制,但沒有區別。我的深復制方法如下所示:private static char[][] deepCopy (char [][] data){    char [][] newArray = new char [//][//];    for (int i = 0; i < length i++) {        for (int j = 0; j < colLength; j++) {            newArray[i][j] = data[i][j];        }    }    return newArray;}我認為 while 循環在退出之前會覆蓋所有數據。我怎樣才能解決這個問題 ?如果有不清楚的地方,請告訴我,我會編輯我的問題。我還嘗試在方法的不同部分返回二維數組這是我如何使用返回的二維數組的示例變量X = new ClassName (2dArrayThatWasReturned); 返回變量X;->variableX 是 ClassName 類型,構造函數接受一個二維數組 ->傳遞的二維數組將把它的值分配給實例二維數組。實例二維數組是打印的數組
查看完整描述

2 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

問題是你的循環:


for (int i = 0; to returncharLength; increment i) {

    for (int j = 0; to returnchar[i]Length; increment j) {

       returnChar[i][j] = spliter[0].charAt(j);

    }

}

將覆蓋整個數組,因為每次都從 row 轉到 , 0。returnchar.length相反,您只需要填充最后一行之后的下一行。您可以for按如下方式重寫循環:


for (int r=0; r<returnchar.length; r++) { // "r" for row

    String line = input.nextLine();

    String[] splitter = line.split(" ", 2);

    for (int c=0; c<returnchar[r].length; c++) { // "c" for column

        returnchar[r][c] = splitter[c];

    }

}


查看完整回答
反對 回復 2023-11-10
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

這是打印漂亮的 2D 數組的方法:

for (char[] x : returnChar) {
    System.out.println(Arrays.toString(x));
}


查看完整回答
反對 回復 2023-11-10
  • 2 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號