java实现字符串的逆向输出——单词保持原样和单词也逆向输出

来源:互联网 发布:crm软件系统功能 编辑:程序博客网 时间:2024/05/16 10:10

      上篇博文中的代码实现了整个字符串的逆向输出,但是对于单个单词来讲保持原有字母顺序不变,可参见上一篇博文,这次的代码可以实现字符串的完全逆向输出,单个单词的字母顺序也能反转,而且是七种方式,参考内容在此,代码如下:

import java.util.Stack;public class A{public static void main(String[] args){System.out.println("use method reverse1(String s): ");System.out.println(reverse1("I love you"));System.out.println("use method reverse2(String s): ");System.out.println(reverse2("I love you"));System.out.println("use method reverse3(String s): ");System.out.println(reverse3("I love you"));System.out.println("use method reverse4(String s): ");System.out.println(reverse4("I love you"));System.out.println("use method reverse5(String s): ");System.out.println(reverse5("I love you"));System.out.println("use method reverse6(String s): ");System.out.println(reverse6("I love you"));System.out.println("use method reverse7(String s): ");System.out.println(reverse7("I love you"));}public static String reverse1(String s) {int length = s.length();if (length <= 1)return s;String left = s.substring(0, length / 2);String right = s.substring(length / 2, length);return reverse1(right) + reverse1(left);    }  public static String reverse2(String s)   {   int length = s.length();   String reverse = "";   for (int i = 0; i < length; i++)   reverse = reverse + s.charAt(i);// this is a really strategically way  return reverse;  } public static String reverse3(String s)  {  char[] array = s.toCharArray();  String reverse = "";  for (int i = array.length - 1; i >= 0; i--)  reverse += array[i];    return reverse; } public static String reverse4(String s) {  return new StringBuffer(s).reverse().toString(); } public static String reverse5(String orig) {  char[] s = orig.toCharArray();  int n = s.length - 1;  int halfLength = n / 2;  for (int i = 0; i <= halfLength; i++) {   char temp = s[i];   s[i] = s[n - i];   s[n - i] = temp;  }  return new String(s); }  public static String reverse6(String s) {    char[] str = s.toCharArray();    int begin = 0;  int end = s.length() - 1;    while (begin < end) {   str[begin] = (char) (str[begin] ^ str[end]);   str[end] = (char) (str[begin] ^ str[end]);   str[begin] = (char) (str[end] ^ str[begin]);   begin++;   end--;  }    return new String(str); }  public static String reverse7(String s) {  char[] str = s.toCharArray();  Stack<Character> stack = new Stack<Character>();  for (int i = 0; i < str.length; i++)   stack.push(str[i]);    String reversed = "";  for (int i = 0; i < str.length; i++)   reversed += stack.pop();    return reversed; }}

运行结果如下:


0 0
原创粉丝点击