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

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

初始化的整數被稱為 charAt 的索引值,但是我不能減少索引整數的值

初始化的整數被稱為 charAt 的索引值,但是我不能減少索引整數的值

蠱毒傳說 2023-06-14 10:36:43
老實說,我對 Java 的了解比我想了解的要少得多。目的是確定給定的字符串是否為回文。為此,我的代碼的目的是讀取給定字符串的每個字符并將其復制到反向字符串中,然后比較字符串以查找它們是否相同。根據 CodeSignal,在第 8 行它需要一個分號;但是,那里已經存在一個,并且我已經嘗試了我能想到的所有解決方案,我可能只是誤解了語法。以下是我當前的代碼,如果有任何幫助,我將不勝感激,謝謝。代碼:boolean checkPalindrome(String inputString) {? ? String reverseString = 0;? ? int x = inputString.length;? ? int b = inputString.length;? ? for (int i = 0; i > x; i++) {? ? ? ? char a = str.charAt(b);? ? ? ? int b - 1;? ? ? ? String reverseString = reverseString + "a";? ? }? ? if (reverseString == inputString) {? ? ? ? return false;? ? } else {? ? ? ? return true;? ? }}? ? ? ?顯示的錯誤消息是:file.java on line 8: error: ';' expected? ? ? ?int b - 1;? ? ? ?1 error
查看完整描述

3 回答

?
慕仙森

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

您不能多次聲明變量int b =

如果您想減少b價值,只需使用--as post-?decrement

b--;

或者預減

--b;

-- 減量運算符;將值減 1



查看完整回答
反對 回復 2023-06-14
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

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



查看完整回答
反對 回復 2023-06-14
?
子衿沉夜

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;

}


查看完整回答
反對 回復 2023-06-14
  • 3 回答
  • 0 關注
  • 205 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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