黑马程序员技术交流社区
标题:
大家说说将元素翻转输出有多少种方法?
[打印本页]
作者:
深知一生短暂
时间:
2013-9-10 22:53
标题:
大家说说将元素翻转输出有多少种方法?
本帖最后由 深知一生短暂 于 2013-9-11 19:21 编辑
大家说说将元素翻转输出有多少种方法?
求归纳,求总结,最好是多种方法吖。我目前就知道StringBuffer的reverse();
求各位大神们提供多种方法!!
作者:
李锡碧
时间:
2013-9-10 23:05
也可以使用数组哦
作者:
陈圳
时间:
2013-9-10 23:48
List<String> list=new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
for(int i=list.size()-1,startIndex=0;i>=(list.size()>>1);i--,startIndex++){
list.set(i, list.set(startIndex, list.get(i)));
}
System.out.println(list);
String str="abcdefghijk";
char[] chs=str.toCharArray();
for(int i=chs.length-1,j=0;i>chs.length>>1;i--,j++){
chs[i]=(char) (chs[j]+((chs[j]=chs[i])-chs[j]));
}
System.out.println(Arrays.toString(chs));
复制代码
一种方式而矣.几种不同的类型.
作者:
sunriselzz
时间:
2013-9-10 23:51
package com.itheima;
import java.util.Scanner;
public class Test5 {
/**
* 5. 将字符串中进行反转。abcde --> edcba
* @author lzz
* @param args
*/
public static void main(String[] args) {
String str = null;
// 从键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
str = sc.nextLine();
System.out.println("反转方式一: " + stringReverse1(str));
System.out.println("反转方式二: " + stringReverse2(str));
System.out.println("反转方式三: " + stringReverse3(str));
System.out.println("反转方式四: " + stringReverse4(str));
}
//把字符串置换成字符数组,把每个字符添加到StringBuffer容器中再反转
public static String stringReverse4(String str) {
// 转换成字符数组
char[] chs = str.toCharArray();
// 把字符数组中的每个字符添加到StringBuffer容器中
StringBuffer sb = new StringBuffer();
for (int i = 0; i < chs.length; i++) {
sb.append(chs[i]);
}
// 反转后输出
return sb.reverse().toString();
}
// 使用StringBuilder实现字符串反转
public static String stringReverse3(String str) {
StringBuilder sb = new StringBuilder(str);
return sb.reverse().toString();
}
// 把字符串转变成字符数组再倒序遍历输出
public static String stringReverse2(String str) {
// 转换成字符数组
char[] chs = str.toCharArray();
String str2 = "";
// 倒序遍历并实现字符串拼接
for (int i = chs.length - 1; i >= 0; i--) {
str2 += chs[i];
}
return str2;
}
// 把字符串转换成字符数组并从头尾依次实现位置置换
public static String stringReverse1(String str) {
// 转换成字符数组
char[] chs = str.toCharArray();
// 实现头尾位置依次置换
for (int i = 0, j = chs.length - 1; i < (chs.length >> 1); i++, j--) {
// 交换两个元素的位置
char temp = chs[i];
chs[i] = chs[j];
chs[j] = temp;
}
return new String(chs);
}
}
复制代码
这个题是本人黑马入学考试一道比较简单的考题,是对字符串中各个元素的反转,你可以参考一下
同时,如果是数组中元素的反转也是类似的,希望对你有收获
reverse.jpg
(74.72 KB, 下载次数: 1)
下载附件
2013-9-10 23:45 上传
数组元素反转运行结果
作者:
神之梦
时间:
2013-9-11 02:15
存:字符串、容器、集合、数组
取:for循环角标位置元素交换、容器或集合工具类的reverse方法
再加上LinkedList特有的先进后出方式
能想到的就这些
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2