2016-12-09 5 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、RがすべてRであるすべての文字列。

答えて

0

まず、種類に注意する必要があります。 s.charAt(i)charタイプを返しますが(メソッドの名前からは驚くことではありません)、String"R"と比較しています。それはコンパイルされず、たとえそれが実行されても動作しません。 charsとStringは異なる獣であり、等しくはありません。

charリテラルは単一引用符、例えば'R'で区切られます。元の文字列を変更することで、あなたの試みはどちらか動作しないこと

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

注:

このコードは、私はあなたがコードに抱き合わせていると思うものです。私のコードに従って新しいStringを使用してください。わかりやすく理解しやすい。

+0

ありがとうございます。私は前にjavaを使用していないので、私は本当の初心者です。 s.charAt(i)が文字で、文字列ではないという問題は論理的に聞こえます;)なぜ私はこれについて前もって考えていないのか分かりません:)問題を解決しようとしたが、プログラムを動作させる他の方法。私はs.charAt(i)と(char)85(85はAscii番号 "R")を比較しました。これも動作し、プログラムは元の文字列を変更します。 – dino1995

+0

@ dino1995問題ありません。 '(char)85'は' 'R ''と同じですが、どちらが読みやすいのかが分かります。 – Bohemian

+0

さて、 "R"と "R"の違いを理解していると思います:)ありがとう:) – dino1995