标签:
逆转字符串——输入一个字符串,将其逆转并输出。
比如:输入字符串为:love。则输出为:evol。
注:在下文中,字符串翻转也是逆序的意思。
有两种大的思路:
(1) StringBuffer提供了字符串翻转功能,直接利用API即可。
(2) 利用String本质是char数组进行字符串逆序。
1 package com.myeclipse; 2 3 /** 4 * 逆转字符串——输入一个字符串,将其逆转并输出 5 * @author MrChen 6 * 7 */ 8 public class StringReverse { 9 10 /** 11 * @param args 12 */ 13 public static void main(String[] args) { 14 // TODO Auto-generated method stub 15 String str = "love"; 16 // System.out.println("reverseByStringBuffer result: "+reverseByStringBuffer(str)); 17 System.out.println(reverseByCharArray(str)); 18 } 19 20 /** 21 * 利用string本质是char数组来翻转字符串 22 * @param str 23 * @return 24 */ 25 public static String reverseByCharArray(String str) { 26 char[] array = new char[str.length()]; 27 str.getChars(0, str.length(), array, 0); 28 //打桩,查看char数组内容 29 // System.out.println(array.length); 30 // for(char c : array){ 31 // System.out.println(c); 32 // } 33 //新建一个目标数组,用来存放翻转以后的字符串 34 char[] dest = new char[array.length]; 35 //翻转字符 36 for( int i=0; i<dest.length; i++ ) { 37 dest[i] = array[array.length-1-i]; 38 } 39 return new String(dest); 40 } 41 42 43 /** 44 * 利用StringBuffer提供的字符串反转方法 45 * @param str 46 * @return 47 */ 48 public static String reverseByStringBuffer(String str) { 49 StringBuffer sb =new StringBuffer(str); 50 StringBuffer sb_out = sb.reverse(); 51 return sb_out.toString(); 52 } 53 54 55 }
(1) 逆序字符串是一个很简单的功能,但思考方向有两个:一个是朝String之上思考(可以认为StringBuffer是包装了String类型的,从StringBuffer构造方法可以验证),一个是往String之下思考(String本质构成,纵深思考)。
(2) 将字符串转换成char[] 也可以不用现成的API,比如利用for循环,通过索引值的增加逐个得到字符串的每个字符。
(3) char[] 的翻转也有别的方式,比如最简单的 a=b,b=c,c=a 这种传值交换。
(4) 如果懂C语言,甚至可以直接用指针进行操作。
标签:
原文地址:http://www.cnblogs.com/helloIT/p/5161709.html