2016-10-12 16 views
0

私はこの問題に問題を抱えています。単純なJavaのString逆転

ここで私は書いたコードは次のとおりです。あなたが入力し、「テスト」

助けてくださいにした場合には、出力「TSET」になっています

package com.jdewey.rvrs; 
import java.util.Scanner; 

public class Reverse { 

    public static void main(String[] args) { 
     Scanner console = new Scanner(System.in); 
     System.out.print("Enter your string: "); 
     String userIn = console.nextLine(); 
     int inLength = userIn.length(); 
     stringRvrs(userIn, inLength); 

    } 
    public static void stringRvrs(String x, int length){ 
     for(int i = 1; i <= length; i++){ 
      int y = -1 * i + length; 
      System.out.print(x.substring(y));; 
     } 
    } 
} 

+1

'文字列逆転=新しいStringBufferの(userIn).reverse()。のtoString()' – Tibrogargan

答えて

1

文字列の最後からループを作成し、substringの代わりにcharAtを使用して各文字を印刷する方が理にかなっています。私は、コードを修正だけではなく、私はこれはあなたのための学習課題であると仮定します(Reverse a string in Javaをここで参照)、文字列を逆にするライブラリ関数を使用して簡単な方法がある。もちろん、

public static void stringRvrs(String x, int length){ 
    String result = ""; 
    for(int i = length - 1; i >= 0; i--){ 
     result = result + x.charAt(i); 
    } 
    System.out.println(result); 
} 

を下記を参照してください。簡単な方法でリンクすることができます。以下のように

+0

ウィザードのおかげです! –

+0

@JonDewey助けて幸いですが、upvoteと受け入れることを覚えておいてください! =] – nhouser9

1

するTryのStringBuilder:

public static void stringRvrs(String x){ 
     char [] all = x.toCharArray(); 
     StringBuilder concate = new StringBuilder(); 
     for(int i = all.length-1;i >= 0;i--){ 
      concate = concate.append(String.valueOf(all[i])); 
     } 
     System.out.println(x+" reversed to "+concate); 
    } 

メソッドのパラメータとしてint lengthを渡す必要はありません。

0

あなたは単にそれを使用して見つけることができるので、引数として文字列の長さを渡す必要はありません

public static void stringRvrs(String x, int length){ 
     StringBuilder sb = new StringBuilder(x); 
     System.out.println(sb.reverse()); 
} 


、あなたの方法を変更した後、次のようになりますstringBuilder.reverse();
を使用することができます任意の時点でstring.length();となります。

関連する問題