黑马程序员技术交流社区

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

作者: Spring up    时间: 2012-12-17 11:09
标题: 字符串反转
写一个方法,实现字符串的反转,如:输入abc,输出cba

作者: 黑马黄涛    时间: 2012-12-17 11:18
String str = "abc";
StringBuffer buf = new StringBuffer(str);
buf = buf.reverse();
str = new String(buf);
哈哈...有现成的方法嘛...
作者: Spring up    时间: 2012-12-17 11:19
黑马黄涛 发表于 2012-12-17 11:18
String str = "abc";
StringBuffer buf = new StringBuffer(str);
buf = buf.reverse();

我知道有 ,  自己写怎么写呢?
作者: 黑马黄涛    时间: 2012-12-17 11:20
你也可以切割拼接...但是那样内存会产生好多好多字符串对象了 "a" "b"  "c" "cb"这些都是无用的对象,肯定会降低系统性能的,呵呵 不过StringBufferer的反转内部实现方估计也是这个...甚至会优化哦...所以建议用现成的呗...
作者: 朱宏青    时间: 2012-12-17 11:21
StringBuffer bufStr = new StringBuffer(new String("abc"));
bufStr = buf.reverse();
System.out.println(bufStr.toString());
作者: 黑马黄涛    时间: 2012-12-17 11:23
使用String的charAt(int)方法...
然后for循环... String str="";

for (int i=0; i <"abc".length(); i++){
  str+="abc".charAt("abc".length()-1-i);
}
str就是啦...
作者: 黑马黄涛    时间: 2012-12-17 11:23
呵呵...大概就是这个思路啦...
作者: 朱宏青    时间: 2012-12-17 11:24
黑马黄涛 发表于 2012-12-17 11:18
String str = "abc";
StringBuffer buf = new StringBuffer(str);
buf = buf.reverse();

.无聊逛逛还能看到

自己写的话 不嫌麻烦就写个char[]
然后subString(i,i+1);
然后将char[]反转以后.toString()
嘛 就这样
作者: 黑马黄涛    时间: 2012-12-17 11:27
朱宏青 发表于 2012-12-17 11:24
.无聊逛逛还能看到

自己写的话 不嫌麻烦就写个char[]

呵呵...思路很多啦...
使用String的charAt(int)方法...
然后for循环... String str="";

for (int i=0; i <"abc".length(); i++){
   str+="abc".charAt("abc".length()-1-i);
}
java板块的技术分好难挣....答对了也...
看看.net的...哈哈,所以去.net背分去了...今天挣了2分呢...

呵呵,你的这个比我的那个多产生了 "a" "b" "c"三个对象...哈哈...
作者: 黑马黄涛    时间: 2012-12-17 11:28
黑马黄涛 发表于 2012-12-17 11:27
呵呵...思路很多啦...
使用String的charAt(int)方法...
然后for循环... String str="";

所以一般情况下...我是不会用subString()的,太浪费内存的了...
作者: 黑马黄涛    时间: 2012-12-17 11:31
黑马黄涛 发表于 2012-12-17 11:28
所以一般情况下...我是不会用subString()的,太浪费内存的了...

嗯...前辈..去吃饭了...
呵呵...以后还请多多指教了{:3_67:}
作者: 依然AI    时间: 2012-12-17 23:04
  1. public static void main(String[] args) {
  2.                 // 写一个集合,集合存放的是整形的数据
  3.                 ArrayList aList = new ArrayList();
  4.                 aList.add(5);
  5.                 aList.add(2);
  6.                 aList.add(3);
  7.                 aList.add(4);

  8.                 Sample.daxiao(aList);
  9.                 Sample.xiaoda(aList);

  10.         }

  11.         // 写一个帮助类,帮组类中有两个static方法,一个方法为从大到小的顺序排序
  12.         public static class Sample {
  13.                 // 方法为从大到小的顺序排序
  14.                 public static void daxiao(ArrayList aList) {
  15.                         // 通过Collections.sort()排序
  16.                         Comparator comp = Collections.reverseOrder();
  17.                         Collections.sort(aList, comp);

  18.                         Iterator iterator = aList.iterator();
  19.                         while (iterator.hasNext()) {
  20.                                 System.out.println(iterator.next());
  21.                         }
  22.                 }

  23.                 // //方法为从小到大的顺序排序
  24.                 public static void xiaoda(ArrayList aList) {
  25.                         // 通过Collections.sort()排序
  26.                         Collections.sort(aList);

  27.                         Iterator iterator = aList.iterator();
  28.                         while (iterator.hasNext()) {
  29.                                 System.out.println(iterator.next());
  30.                         }
  31.                 }
  32.         }
复制代码
楼主参考我的这个对集合的反向排序方法改一下 应该能解决




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