黑马程序员技术交流社区
标题:
一个小程序:将字符串中进行反转。abcde --> edcba
[打印本页]
作者:
郑丹丹
时间:
2012-12-31 01:35
标题:
一个小程序:将字符串中进行反转。abcde --> edcba
public class Fanzhuang
{
public static void main(String[] args)
{
String str="abcde";
resever(str);
}
public static void resever(String str)
{
//将字符串转换成字符数组
char[] ch=str.toCharArray();
//定义ArrayList集合
ArrayList<Character> al=new ArrayList<Character>();
//将字符串中的元素逆序添加到ArrayList集合
for(int x=0;x<ch.length;x++)
{
al.add(ch[ch.length-1-x]);
}
//遍历ArrayList集合,并打印
Iterator<Character> it=al.iterator();
while(it.hasNext())
{
System.out.print(it.next());
}
}
}
这是我的代码,你还有更好的方法吗?
作者:
夏晓彤
时间:
2012-12-31 02:39
反转有很多方法的我觉得这样方法比较简单
public class Test2
{
public static void main (String[]args)
{
String str="abcde";
reverse(str);
}
public static void reverse(String s)
{
String a=new StringBuffer(s).reverse().toString();
System.out.println(a);
}
}
复制代码
StringBuffer的reverse()多好用啊,都封装好的
作者:
刘文超
时间:
2012-12-31 09:47
楼上是一种好的方法、
另外,可以直接写:
for(int i=str.length()-1;i>=0;i--){
System.out.println(str.charAt(i));
}
复制代码
还有一种思想就是用栈的LIFO,将字符串的字符入栈,在出栈,自然为逆序。
---------------接分钟-----------
作者:
黄锦成
时间:
2012-12-31 10:28
这个是我自己写的
public class Test {
public static void main(String[] args)
{
String str = "abcde";
char[] arr = str.toCharArray();
System.out.println("字符串反转前:" + str);
reverseArray(arr);
str = new String(arr);
System.out.println("字符串反转后:" + str);
}
public static void reverseArray(char[] arr)
{
int len = arr.length;
for (int i=0; i<len/2; i++)
{
char temp = arr[i];
arr[i] = arr[len-i-1];
arr[len-i-1] = temp;
}
}
}
复制代码
作者:
jsfjb
时间:
2012-12-31 13:41
我怎么感觉这道题好熟悉啊,怎么像是一道**题!
作者:
焦健
时间:
2012-12-31 13:56
感觉你这么做不如用linkedlist集合,使用addFirst方法将元素按正序添加进集合,遍历一次取出的就是倒序的了,而且在整个反转动作中只涉及到集合元素的存取操作,对于这类增删操作,使用ArrayList速度低于LinkedList。个人见解,若有不对请指出。
作者:
焦健
时间:
2012-12-31 13:56
感觉你这么做不如用linkedlist集合,使用addFirst方法将元素按正序添加进集合,遍历一次取出的就是倒序的了,而且在整个反转动作中只涉及到集合元素的存取操作,对于这类增删操作,使用ArrayList速度低于LinkedList。个人见解,若有不对请指出。
作者:
肖亚光
时间:
2012-12-31 17:20
class TestReverse{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String restr = reverse(str);
System.out.println(restr);
}
public static String reverse(String str){
List<Character> list = new ArrayList<Character>();
String restr = "";
char[] ch = str.toCharArray();
for(int i = 0 ; i < ch.length ; i++)
list.add(ch[i]);
while(list.size()>0)
restr = restr + list.remove(list.size()-1);
return restr;
}
}
作者:
闭眼就天黑
时间:
2013-12-16 20:20
这个用字符串函数不就可以换取了吗??先获取字符串长度,然后循环反向输出。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2