字符串可以转换为字符数组,并且数组从末尾开始循环。
StringBuilder toReturn = new StringBuilder(); char[] tab = input.toCharArray(); for( int i = tab.length-1 ; i >= 0 ; i--){ toReturn.append( tab[i] ); } return toReturn.toString();
此示例创建一个名为reverse的方法,该方法将String转换为CharArray。 它循环遍历从最后一个到第一个的所有字符,并将其添加到 StringBuilder
。 然后返回输出。
使用2个示例字符串调用此方法。 第一个方法reverse被调用两次,第一个调用的输出显示输出与输入相同。
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