2016-12-09 58 views
0

我想比較字符串中的字符與字母「R」。所以我想檢查字符串中位置i上的字符是「R」,「L」還是「F」。用字母比較字符串中的字符?

這是我的代碼,但它沒有字... 我是一名Java初學者,對於改進我的代碼並使其工作的每個想法都非常滿意。

 for (int i = s.length()-2; i >= 0; i--){ 
      if (s.charAt(i) == "R"){ 
        s = s + "L";} 
      else if (s.charAt(i) == L){ 
        s = s + "R";} 
      else {s = s + "F";} 

// s = s + s.charAt(i); } //對於

順便說一下,完整的練習是獲取一個隨機字符串(例如RFFLF),添加一個R,然後添加給定的字符串在轉身順序和替換(在添加字符串)每R與L和每個L與R.

回答

0

首先,你必須小心你的類型。 s.charAt(i)返回一個char類型(給出方法名稱並不令人意外),但您將其與String"R"進行比較。這不會編譯,即使它做到了,也不會起作用。字符和字符串是不同的野獸,並不是平等的。

char文字由分隔單引號,如'R'

這段代碼是什麼,我認爲你綁代碼:

String result = ""; 
if (s.charAt(i) == 'R') { 
    result = result + "L"; // you could code + 'L' too - both will work 
} 

請注意,您在嘗試修改原始字符串不會工作。根據我的代碼使用新的字符串。更容易理解和正確。

+0

謝謝你的回答。我以前沒有用過java,所以我是一個真正的初學者。 s.charAt(i)是一個字符而不是字符串的問題聽起來很合邏輯;)我不知道爲什麼我沒有想過這個:)雖然我試圖解決這個問題,我發現了其他方式使程序正常工作。我比較了s.charAt(i)和(char)85(85是Ascii數字「R」)。它也可以工作,現在程序修改了原始字符串。 – dino1995

+0

@ dino1995沒問題。 '(char)85'與'R''實際上是相同的,但我們都知道哪一個更容易閱讀。 – Bohemian

+0

好吧,我想我現在明白了「R」和「R」之間的區別:)謝謝:) – dino1995