3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
您不能多次聲明變量int b =
如果您想減少b
價(jià)值,只需使用--
as post-?decrement
b--;
或者預(yù)減
--b;
-- 減量運(yùn)算符;將值減 1

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
修復(fù)語(yǔ)法錯(cuò)誤非常簡(jiǎn)單。您已經(jīng)告訴 Java 您想要?jiǎng)?chuàng)建一個(gè)名為 的變量b
,int b = inputString.length;
因此當(dāng)它看到int b - 1;
Java 時(shí)認(rèn)為您正在嘗試創(chuàng)建一個(gè)名為 的新變量b
。我假設(shè)您想從 中減去一個(gè)b
,為此將行更改為b = b - 1;
。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
不僅降低了 的值b
,而且您的代碼中還存在一些永遠(yuǎn)無(wú)法成功編譯的錯(cuò)誤。實(shí)際上,整個(gè)代碼充滿(mǎn)了錯(cuò)誤。我一一指出錯(cuò)誤,但給你一個(gè)建議,在實(shí)際解決問(wèn)題之前,請(qǐng)嘗試正確學(xué)習(xí)JAVA編程的基礎(chǔ)知識(shí)。
1.
String reverseString = 0;
該行應(yīng)該會(huì)出現(xiàn)編譯錯(cuò)誤,因?yàn)?int 無(wú)法轉(zhuǎn)換為 String。
正確的語(yǔ)法可以是這樣的:
String reverseString = "";
2.
int x = inputString.length;
在 Java 中,length
變量適用于數(shù)組,而對(duì)于字符串,length()
方法也是如此。
所以,修復(fù)是:
int x = inputString.length();
3.
int b = inputString.length;
當(dāng)您charAt(b)
稍后獲取代碼時(shí),您將獲得StringIndexOutOfBoundsException
. 因?yàn)樗饕?code>charAt()從 0 開(kāi)始到 string_length - 1 結(jié)束。
所以,修正是:
int b = x;
4.
for (int i = 0; i > x; i++)
完全錯(cuò)誤的邏輯,正確檢查條件。i > x
意味著循環(huán)根本不會(huì)繼續(xù)進(jìn)行。所以,應(yīng)該是:
for (int i = 0; i < x; i++)
5.
int b - 1;
明顯錯(cuò)誤的語(yǔ)法。如果你想減少變量值,你不需要在int
對(duì)已經(jīng)聲明的變量進(jìn)行每個(gè)操作之前。因此,正確的語(yǔ)法可以是:
b = b - 1;
或者,簡(jiǎn)單地說(shuō):
b--;
6.
String reverseString = reverseString + "a";
一旦我告訴你應(yīng)該在聲明期間為變量使用一次數(shù)據(jù)類(lèi)型。這里也"a"
只是一個(gè)字符串。要獲取變量值,您應(yīng)該使用 justa
而不是 with ""
。所以,修復(fù)是:
reverseString = reverseString + a;
7.
if (reverseString == inputString) { return false; } else { return true; }
首先,我們不使用==符號(hào)比較 java 中的字符串相等性。那是因?yàn)?=只比較對(duì)象而不是字符串中的實(shí)際內(nèi)容。在這種情況下,您必須使用.equals()方法。另一件事是,由于您的方法名稱(chēng)是checkPalindrome(),理想情況下它應(yīng)該在回文時(shí)返回 true ,在不是時(shí)返回 false 。但是,你正在做相反的事情。IDK,也許您也在您內(nèi)部main()或從您調(diào)用此方法的地方以相反的方式正確處理此問(wèn)題。
因此,更正將是:
if (reverseString.equals(inputString))
return true;
else
return false;
所以,就是這樣
完整的方法將是這樣的:
boolean checkPalindrome(String inputString) {
String reverseString = "";
int x = inputString.length();
int b = x;
for (int i = 0; i < x; i++) {
char a = inputString.charAt(b);
b--;
reverseString = reverseString + a;
}
if (reverseString.equals(inputString))
return true;
else
return false;
}
代碼可以進(jìn)一步簡(jiǎn)化為:
boolean checkPalindrome(String inputString) {
String reverseString = "";
int x = inputString.length();
for (int i = x - 1; i >= 0; i--)
reverseString += inputString.charAt(i);
if (reverseString.equals(inputString))
return true;
else
return false;
}
添加回答
舉報(bào)