读书人

七中将字符串反转的Java方法

发布时间: 2012-09-11 10:49:03 作者: rapoo

7中将字符串反转的Java方法
引用:http://www.oschina.net/code/snippet_12_9060
[代码] [Java]代码
view sourceprint?01 import java.util.Stack;

02 public class StringReverse {

03

04 public static String reverse1(String s) {

05 int length = s.length();

06 if (length <= 1)

07 return s;

08 String left = s.substring(0, length / 2);

09 String right = s.substring(length / 2, length);

10 return reverse1(right) + reverse1(left);

11 }

12

13 public static String reverse2(String s) {

14 int length = s.length();

15 String reverse = "";

16 for (int i = 0; i < length; i++)

17 reverse = s.charAt(i) + reverse;

18 return reverse;

19 }

20

21 public static String reverse3(String s) {

22 char[] array = s.toCharArray();

23 String reverse = "";

24 for (int i = array.length - 1; i >= 0; i--)

25 reverse += array[i];

26

27 return reverse;

28 }

29

30 public static String reverse4(String s) {

31 return new StringBuffer(s).reverse().toString();

32 }

33

34 public static String reverse5(String orig) {

35 char[] s = orig.toCharArray();

36 int n = s.length - 1;

37 int halfLength = n / 2;

38 for (int i = 0; i <= halfLength; i++) {

39 char temp = s[i];

40 s[i] = s[n - i];

41 s[n - i] = temp;

42 }

43 return new String(s);

44 }

45

46 public static String reverse6(String s) {

47

48 char[] str = s.toCharArray();

49

50 int begin = 0;

51 int end = s.length() - 1;

52

53 while (begin < end) {

54 str[begin] = (char) (str[begin] ^ str[end]);

55 str[end] = (char) (str[begin] ^ str[end]);

56 str[begin] = (char) (str[end] ^ str[begin]);

57 begin++;

58 end--;

59 }

60

61 return new String(str);

62 }

63

64 public static String reverse7(String s) {

65 char[] str = s.toCharArray();

66 Stack<Character> stack = new Stack<Character>();

67 for (int i = 0; i < str.length; i++)

68 stack.push(str[i]);

69

70 String reversed = "";

71 for (int i = 0; i < str.length; i++)

72 reversed += stack.pop();

73

74 return reversed;

75 }

76

77 }

读书人网 >编程

热点推荐