黑马程序员技术交流社区

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

作者: Emperors    时间: 2014-4-18 00:31
标题: 字符串反转
package str.demo;

public class ReverseStr {

        public static void main(String[] args) {
                System.out.println(reverse("abcdefg"));
        }

       
        public static String reverse(String data) {
                char[] arr = data.toCharArray();
               
                int len = data.length();
               
                for (int i = 0; i < len / 2; i++) {
                        swap(arr, i, len - i - 1);
                }
               
                return new String(arr);
        }
       
        private static void swap(char[] arr, int index1, int index2) {
                char temp = arr[index1];
                arr[index1] = arr[index2];
                arr[index2] = temp;
        }
}
   这个代码打印的结果是 gfedcba,我想请教一下, 如何让打印的结果为GefDcba呢?
请高手指教、谢谢


作者: 随风而去    时间: 2014-4-18 00:39
你这样的要求有必要么??是没事找分赚吧
作者: Tking    时间: 2014-4-18 00:50
进行翻转的时候,可以在翻转的方法参数里加上标记,指明需要翻转strat到end这段函数,在将abcdefg这个字符串,进行第一次翻转,可以得到gfedcba,这时先拿到字符转内,e和f的位置,再进行一次翻转,将这段代码的位置翻转一次,就可以得到gefdcba,如果你要转换大小写,可以利用很多方法,先变成char数组然后将指定数组的值添加多少,都可以完成
作者: 曹冬明    时间: 2014-4-18 01:23
System.out.println(reverse("abcdefg").toUpperCase().replace("CBA","cba"));
再送你一句二楼的话,这个要求有必要么
作者: Sniper_qiu    时间: 2014-4-18 09:48
只要将这几个需要大写的字母替换成大写的就行了。没有那么多的要求。
作者: Emperors    时间: 2014-4-18 10:44
随风而去 发表于 2014-4-18 00:39
你这样的要求有必要么??是没事找分赚吧

额  不是,我只是遇见类的题    那个题,是将一个语句反转过来,然后再将它们的首字母大写,而我只会做那么多
作者: sanguodouble1    时间: 2014-4-18 11:58
很简单啊,你在拿到你那个结果后,这个把e和f调换一下。
然后用Character.toUpperCase()方法把g和d大写就行了





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