文字列は文字の配列に変換され、配列は末尾から先頭に反転されます。
StringBuilder toReturn = new StringBuilder();
char[] tab = input.toCharArray();
for( int i = tab.length-1 ; i >= 0 ; i--){
toReturn.append( tab[i] );
}
return toReturn.toString();
この例では、StringをCharArrayに変換するreverseというメソッドを作成します。 最後のキャラクタから最初のキャラクタまですべての文字をループし、 StringBuilder に追加します。 次に、出力が返されます。
このメソッドは、2つのサンプルストリングで呼び出されます。 最初のメソッドreverseは2回呼び出され、最初の呼び出しの出力は入力が入力と同じであることを示します。
public class StringReverse {
public static String reverse(String input){
StringBuilder sb = new StringBuilder();
char[] tab = input.toCharArray();
for( int i = tab.length-1 ; i >= 0 ; i--){
sb.append( tab[i] );
}
return sb.toString();
}
public static void main(String[] argv) {
String test = "This is a test";
// Call reverse
String output = reverse( test );
System.out.println( test + " => " + output );
// Same test calling reverse twice
System.out.println( test + " => " + reverse( test ) + " => " + reverse(reverse( test )) );
// With Numbers
test = "0123456789";
System.out.println( test + " => " + reverse( test ) );
}
}
This is a test => tset a si sihT This is a test => tset a si sihT => This is a test 0123456789 => 9876543210