第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

有沒(méi)有辦法用其他數(shù)組初始化二維數(shù)組?

有沒(méi)有辦法用其他數(shù)組初始化二維數(shù)組?

慕斯王 2024-01-28 20:27:14
我被布置了如下家庭作業(yè):從控制臺(tái)應(yīng)用程序中讀取三個(gè)句子。每句話不應(yīng)超過(guò)80個(gè)字符。然后,將每個(gè)輸入句子中的每個(gè)字符復(fù)制到 [3 x 80] 字符數(shù)組中。第一個(gè)句子應(yīng)以字符相反的順序加載到第一行 - 例如,“mary had a little羔羊”應(yīng)作為“bmal elttil a dah yram”加載到數(shù)組中。第二句話應(yīng)該以單詞相反的順序加載到第二行中 - 例如,“mary had a littlelamb”應(yīng)該加載到數(shù)組中,如“l(fā)amb little a had mary”。第三句應(yīng)該加載到第三行,如果數(shù)組的索引可以被 5 整除,則相應(yīng)的字符將被字母“z”替換 - 例如,“mary had a littlelamb”應(yīng)該加載到數(shù)組為“mary zad azlittze lazb”——也就是說(shuō),索引位置 5、10、15 和 20 中的字符被“z”替換。請(qǐng)注意,空格也是一個(gè)字符,并且索引從位置 0 開(kāi)始。現(xiàn)在在控制臺(tái)上打印字符數(shù)組的內(nèi)容。下面代碼中的方法、返回類型和參數(shù)都是根據(jù)需要指定的,因此我無(wú)法更改任何這些信息。我在初始化二維數(shù)組時(shí)遇到問(wèn)題。指令說(shuō)句子必須加載到已經(jīng)顛倒的數(shù)組中等,但是執(zhí)行此操作的方法的參數(shù)需要字符串。我認(rèn)為這意味著我應(yīng)該將這些行作為字符串讀取,然后調(diào)用方法來(lái)修改它們,然后使用 toCharyArray 來(lái)轉(zhuǎn)換它們,然后再將它們加載到二維數(shù)組中。我不明白如何使用 char 數(shù)組的值初始化 2D 數(shù)組。我可以使用某種 for 循環(huán)嗎?另一個(gè)問(wèn)題是,在主方法內(nèi)部無(wú)法進(jìn)行任何處理,但在說(shuō)明中沒(méi)有我可以調(diào)用來(lái)填充數(shù)組的方法。
查看完整描述

1 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

問(wèn)題是,在您的printChar2DArray方法中,您假設(shè)每個(gè)數(shù)組的長(zhǎng)度為 80,但實(shí)際上并非如此。在 Java 中,二維數(shù)組只是數(shù)組的數(shù)組。因此,當(dāng)你有這個(gè):時(shí)char[][] arr = new char[3][80],你正在創(chuàng)建一個(gè)由 3 個(gè)數(shù)組組成的數(shù)組,每個(gè)數(shù)組的長(zhǎng)度都是 80 個(gè)字符。這看起來(lái)似乎沒(méi)問(wèn)題,但在接下來(lái)的幾行中,您將使用完全不同的內(nèi)容重新初始化 3 個(gè)數(shù)組。


arr[0] = reverseByCharacter(sentence1).toCharArray();

arr[1] = reverseByWord(sentence2).toCharArray();

arr[2] = change5thPosition(sentence3).toCharArray();

現(xiàn)在這些數(shù)組的長(zhǎng)度都不為 80。每個(gè)數(shù)組都有各自字符串的長(zhǎng)度。


您可以通過(guò)兩種方式解決這個(gè)問(wèn)題(取決于您的任務(wù)實(shí)際受到的限制程度)。


首先,您可以將字符串復(fù)制到數(shù)組中,而不是將數(shù)組分配給方法的結(jié)果toCharArray。您可以通過(guò)一個(gè)簡(jiǎn)單的循環(huán)來(lái)實(shí)現(xiàn)此目的,但我不推薦這種方法,因?yàn)槟罱K會(huì)得到 80 個(gè)字符的數(shù)組,即使字符串包含的字符更少。


String firstSentence = reverseByCharacter(sentence1);

for (int i = 0; i < firstSentence.length(); i++) {

    arr[0][i] = firstSentence.charAt(i);

}

或者:


char[] firstSentence = reverseByCharacter(sentence1).toCharArray();

for (int i = 0; i < firstSentence.length; i++) {

    arr[0][i] = firstSentence[i];

}

其次,您可以在方法中放棄對(duì)數(shù)組長(zhǎng)度的假設(shè)printChar2DArray。我推薦這種方法,因?yàn)樗鼓拇a更加靈活。然后你的printChar2DArray方法將如下所示:


public static String printChar2DArray(char[][] arr){

    for (int x = 0; x < arr.length; x++) {

        for (int y = 0; y < arr[x].length; y++) {

            // just a print so it does not make new lines for every char

            System.out.print(arr[x][y]);

        }

    }

    return null;

}

您可以看到我已經(jīng)用length字段替換了數(shù)字,任何數(shù)組都可以訪問(wèn)該字段。


另外,這樣您就不需要初始化內(nèi)部數(shù)組,因?yàn)闊o(wú)論如何您都會(huì)在下一行中重新初始化它們。


char[][] arr = new char[3][];

arr[0] = reverseByCharacter(sentence1).toCharArray();

arr[1] = reverseByWord(sentence2).toCharArray();

arr[2] = change5thPosition(sentence3).toCharArray();

但這種方法可能不適合您的任務(wù),因?yàn)檫@樣句子可以是任意長(zhǎng)度,并且它們不會(huì)最多限制為 80 個(gè)字符。


更新- 回答評(píng)論中的問(wèn)題


要打印換行符,您可以System.out.println()不帶參數(shù)使用。這比將換行符放入數(shù)組中更好,因?yàn)樗皇蔷渥拥倪壿嫴糠帧?/p>


所以你的for循環(huán)printChar2DArray看起來(lái)像這樣:


for (int x = 0; x < 3; x++) {

    for (int y = 0; y < 80; y++) {

        // just a print so it does not make new lines for every char

        System.out.print(arr[x][y]);

    }

    System.out.println();

}


查看完整回答
反對(duì) 回復(fù) 2024-01-28
  • 1 回答
  • 0 關(guān)注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)