字符串反转 --- Java 递归和非递归实现
1)递归实现
思想:如:hello --- > elloh ---> lloeh ---> loleh -- > olleh
1 // 递归实现字符串反转 2 public static String reverse(String orStr) { 3 4 if (orStr == null || orStr.length() == 1) {// "" "s" 5 return orStr; 6 } 7 8 return reverse(orStr.substring(1)) + orStr.charAt(0);// "sdfghjkl" 9 10 }
2 )非递归实现
思想:将一个字符串打散成字符数组,然后用strBuffer 对象追加

1 // 非递归实现字符串反转 2 public static String reverseNoRecurse(String orgStr) { 3 if (orgStr == null || orgStr.length() == 1) { 4 return orgStr; 5 } 6 char[] charArr = orgStr.toCharArray(); 7 StringBuffer sb = new StringBuffer(); 8 for (int i = charArr.length-1; i >=0; i--) { 9 sb.append(charArr[i]); 10 } 11 return sb.toString(); 12 13 }
测试:
// 测试入口 public static void main(String[] args) { String str = new String("abc"); // System.out.println(reverse(str)); //递归 System.out.println(reverseNoRecurse(str)); //非递归 }
浙公网安备 33010602011771号