A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Emperors 中级黑马   /  2014-4-18 00:31  /  1164 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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呢?
请高手指教、谢谢

7 个回复

倒序浏览
你这样的要求有必要么??是没事找分赚吧
回复 使用道具 举报
进行翻转的时候,可以在翻转的方法参数里加上标记,指明需要翻转strat到end这段函数,在将abcdefg这个字符串,进行第一次翻转,可以得到gfedcba,这时先拿到字符转内,e和f的位置,再进行一次翻转,将这段代码的位置翻转一次,就可以得到gefdcba,如果你要转换大小写,可以利用很多方法,先变成char数组然后将指定数组的值添加多少,都可以完成

点评

恩 谢谢  发表于 2014-4-18 10:47

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
System.out.println(reverse("abcdefg").toUpperCase().replace("CBA","cba"));
再送你一句二楼的话,这个要求有必要么
回复 使用道具 举报
只要将这几个需要大写的字母替换成大写的就行了。没有那么多的要求。
回复 使用道具 举报
随风而去 发表于 2014-4-18 00:39
你这样的要求有必要么??是没事找分赚吧

额  不是,我只是遇见类的题    那个题,是将一个语句反转过来,然后再将它们的首字母大写,而我只会做那么多
回复 使用道具 举报
很简单啊,你在拿到你那个结果后,这个把e和f调换一下。
然后用Character.toUpperCase()方法把g和d大写就行了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马