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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 深知一生短暂 于 2013-9-11 19:21 编辑

大家说说将元素翻转输出有多少种方法?
求归纳,求总结,最好是多种方法吖。我目前就知道StringBuffer的reverse();
求各位大神们提供多种方法!!

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

4 个回复

倒序浏览
也可以使用数组哦
回复 使用道具 举报
  1. List<String> list=new ArrayList<String>();
  2.                 list.add("a");
  3.                 list.add("b");
  4.                 list.add("c");
  5.                 list.add("d");
  6.                 for(int i=list.size()-1,startIndex=0;i>=(list.size()>>1);i--,startIndex++){
  7.                         list.set(i, list.set(startIndex, list.get(i)));
  8.                 }
  9.                 System.out.println(list);
  10.                 String str="abcdefghijk";
  11.                 char[] chs=str.toCharArray();
  12.                 for(int i=chs.length-1,j=0;i>chs.length>>1;i--,j++){
  13.                         chs[i]=(char) (chs[j]+((chs[j]=chs[i])-chs[j]));
  14.                 }
  15.                 System.out.println(Arrays.toString(chs));
复制代码
一种方式而矣.几种不同的类型.

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
  1.     package com.itheima;

  2.     import java.util.Scanner;

  3.     public class Test5 {

  4.     /**
  5.     * 5. 将字符串中进行反转。abcde --> edcba
  6.     * @author lzz
  7.     * @param args
  8.     */
  9.     public static void main(String[] args) {
  10.     String str = null;
  11.     // 从键盘录入一个字符串
  12.     Scanner sc = new Scanner(System.in);
  13.     System.out.print("请输入一个字符串:");
  14.     str = sc.nextLine();

  15.     System.out.println("反转方式一: " + stringReverse1(str));
  16.     System.out.println("反转方式二: " + stringReverse2(str));
  17.     System.out.println("反转方式三: " + stringReverse3(str));
  18.     System.out.println("反转方式四: " + stringReverse4(str));

  19.     }
  20.     //把字符串置换成字符数组,把每个字符添加到StringBuffer容器中再反转
  21.     public static String stringReverse4(String str) {
  22.     // 转换成字符数组
  23.     char[] chs = str.toCharArray();
  24.     // 把字符数组中的每个字符添加到StringBuffer容器中
  25.     StringBuffer sb = new StringBuffer();
  26.     for (int i = 0; i < chs.length; i++) {
  27.     sb.append(chs[i]);
  28.     }
  29.     // 反转后输出
  30.     return sb.reverse().toString();
  31.     }

  32.     // 使用StringBuilder实现字符串反转
  33.     public static String stringReverse3(String str) {
  34.     StringBuilder sb = new StringBuilder(str);
  35.     return sb.reverse().toString();
  36.     }

  37.     // 把字符串转变成字符数组再倒序遍历输出
  38.     public static String stringReverse2(String str) {
  39.     // 转换成字符数组
  40.     char[] chs = str.toCharArray();
  41.     String str2 = "";
  42.     // 倒序遍历并实现字符串拼接
  43.     for (int i = chs.length - 1; i >= 0; i--) {
  44.     str2 += chs[i];
  45.     }
  46.     return str2;
  47.     }

  48.     // 把字符串转换成字符数组并从头尾依次实现位置置换
  49.     public static String stringReverse1(String str) {
  50.     // 转换成字符数组
  51.     char[] chs = str.toCharArray();
  52.     // 实现头尾位置依次置换
  53.     for (int i = 0, j = chs.length - 1; i < (chs.length >> 1); i++, j--) {
  54.     // 交换两个元素的位置
  55.     char temp = chs[i];
  56.     chs[i] = chs[j];
  57.     chs[j] = temp;
  58.     }
  59.     return new String(chs);
  60.     }
  61.     }
复制代码
这个题是本人黑马入学考试一道比较简单的考题,是对字符串中各个元素的反转,你可以参考一下
同时,如果是数组中元素的反转也是类似的,希望对你有收获

reverse.jpg (74.72 KB, 下载次数: 5)

数组元素反转运行结果

数组元素反转运行结果

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
存:字符串、容器、集合、数组
取:for循环角标位置元素交换、容器或集合工具类的reverse方法
再加上LinkedList特有的先进后出方式
能想到的就这些
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马