3 回答

TA貢獻1859條經驗 獲得超6個贊
修復語法錯誤非常簡單。您已經告訴 Java 您想要創建一個名為 的變量b
,int b = inputString.length;
因此當它看到int b - 1;
Java 時認為您正在嘗試創建一個名為 的新變量b
。我假設您想從 中減去一個b
,為此將行更改為b = b - 1;
。

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