0

ここに、文字列を逆方向に表示するメソッドがあります。

public static String ReverseStr(String backward) {
       String newString = "";
       for (int i=0; i<backward.length(); i++) {
          newString = backward.charAt(i) + newString;
       }
       return newString;
}

正常に動作しますが、別の方法で実行したいと思います。つまり、 for ループを使用 substring し、2つのパラメーターを持つメソッドを使用して文字列内の各文字を取得し、最後の文字から開始して、その1文字のサブ文字列を新しい文字列と連結します。ループを通過するたびに。

私はこれを試しました:

public static String ReverseStr(String backward) {
       String newString = "";
       for (int i=0; i>backward.length(); i--) {
          String subChar = backward.substring(backward.length()-1);
          newString += subChar;
       }
       return newString;
}

しかし、プログラムを実行すると、何も表示されません。コードの修正を手伝ってください。どうもありがとうございます!

4

7 に答える 7

3

これが宿題でない場合は、StringBuilder クラスと reverse() メソッドを使用します。

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuilder.html#reverse ()

これが宿題なら自分でやってください。

于 2012-07-08T08:48:21.390 に答える
2

制御条件が間違っているため、ループは実行されません。

for (int i=0; i>backward.length(); i--)

から始まり、より大きい0まで続きます (常に少なくとも であるため、これは決して真ではありません)。あなたはおそらく次のことを意味していました:ilengthlength0

for (int i=backward.length(); i>=0; i--)

コードを修正できたら、StringBuilderに連結する代わりに を使用することを検討してくださいString。を使いこなすと、便利な方法StringBuilderが見つかります。reverse()

return new StringBuilder(backward).reverse().toString();
于 2012-07-08T08:48:46.477 に答える
1
class Test
{
    public static void main(String[] args)
    {
        String strtorev = "Test Code";
        String newString = "";
        int len = strtorev.length();
        System.out.println(len);
        for(int i =0;i<len;i++)
        {
            String subChar = strtorev.substring(strtorev.length()-1-i,strtorev.length()-i);
            newString += subChar;
            System.out.println(newString);
        }
    }
}
于 2013-09-09T03:51:39.380 に答える
0

あなたがする必要がありStringBuilderます。次のコードは期待どおりに動作するはずです。

public static String ReverseStr(String backward)
{
   String newString = "";
   StringBuilder sb=new StringBuilder(backward);
   for (int i=0; i>backward.length(); i--) //backward.length() may be replaced with sb.length()
   {
      String subChar = sb.charAt(i); //Replace `substring()` with `charAt()`
      newString += subChar;
   }
   return newString;
}
于 2012-07-08T09:07:36.527 に答える
0
public static String ReverseStr(String backward) {

       String newString = "";

       for (int i=backward.length()-1; i>=0; i--) 
          newString+ = backward.charAt(i);

       return newString;
}
于 2013-06-08T22:10:27.500 に答える