黑马程序员技术交流社区

标题: 字符串反转示例 [打印本页]

作者: 追逐    时间: 2014-3-20 08:06
标题: 字符串反转示例
本帖最后由 追逐 于 2014-3-21 19:33 编辑

/*
需求:把一个字符串进行反转
思路:1.把字符串变成字符数组
          2.把字符数组反转
          3.把字符数组变成字符串
*/

  1. class FanZhuanTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String s = "abcdefghijklmn";
  6.                 String s1 = FanZhuanTest.reverseString(s);
  7.                 System.out.println(s);
  8.                 System.out.println(s1);
  9.         }
  10.         
  11.         //定义一个函数对字符串进行反转
  12.         public static String reverseString(String str, int start, int end)
  13.         {
  14.                 char[] chs = str.toCharArray(); //将字符串变成字符数组
  15.                 reverse(chs, start, end); //调用将字符串数组反转的函数。并规定反转字符串的头和尾
  16.                 return new String(chs); //用String类的构造函数。将字符数组变成字符串
  17.         }

  18.         //定义一个只有一个参数的字符串反转函数
  19.         public static String reverseString(String str)
  20.         {
  21.                 return reverseString(str, 0, str.length());
  22.         }

  23.         //定义字符串反转的函数
  24.         private static void reverse(char[] arr, int start, int end)
  25.         {
  26.                 for(int i = start, j = end - 1; i < j; i++, j--)
  27.                 {
  28.                         swap(arr, i, j); //运用swap函数将字符数组中的指定位置的字符反转
  29.                 }
  30.         }

  31.         //定义一个将字符调换的函数
  32.         private static void swap(char[] chs, int start, int end)
  33.         {
  34.                 char temp = chs[start];
  35.                 chs[start] = chs[end];
  36.                 chs[end] = temp;
  37.         }

  38. }
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2