3 回答
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
問(wèn)題是您聲明字符數(shù)組的方式。
char[] chr1 = {};你這樣做的方式是用 0 的大小定義數(shù)組。
在 Java 中,您需要像這樣指定數(shù)組的大?。?/p>
char[] chr1 = new char[3];
它的作用是聲明一個(gè)預(yù)定義大小為 3 的 char 數(shù)組。
TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果你正在嘗試為回文寫代碼,它在很多方面都是錯(cuò)誤的,但對(duì)于錯(cuò)誤,你正在初始化一個(gè) 0 大小的空數(shù)組,使用這個(gè)
char[] chr1 = new char[3];
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
您還應(yīng)該首先檢查長(zhǎng)度以確保它們相同。否則,您可能會(huì)得到另一個(gè)ArrayIndexOutOfBoundsException. 當(dāng)您使用較長(zhǎng)的字符串長(zhǎng)度來(lái)索引較短的字符數(shù)組時(shí),就會(huì)發(fā)生這種情況。
由于對(duì)于較長(zhǎng)的字符串,您不希望在單個(gè)if語(yǔ)句中進(jìn)行多次比較,因此您應(yīng)該使用循環(huán)并從一個(gè)數(shù)組的開頭和另一個(gè)數(shù)組的結(jié)尾開始進(jìn)行比較。因此,如果長(zhǎng)度為 5,您將比較 0 和 4 處的字符,然后是 1 和 3,然后是 2 和 2,然后是 3 和 1,依此類推。
以下是一些可能有幫助的其他提示。您不需要?jiǎng)?chuàng)建空數(shù)組并填充它們。字符串提供了這種能力。
char[] chr1 = s1.toCharArray();
事實(shí)上,您不需要分配給 String 變量。
char[] chr1 = "man".toCharArray();
以防萬(wàn)一您想要分配給 String 數(shù)組而不是 char 數(shù)組,您可以這樣做來(lái)保存單個(gè)字符串?dāng)?shù)組。
String[] str1 = "abcdefghijklmnopqrstuvwxyz".split("");
添加回答
舉報(bào)
