黑马程序员技术交流社区

标题: 有什么算法能实现逆序输出 [打印本页]

作者: 黑马不黑    时间: 2013-12-3 22:19
标题: 有什么算法能实现逆序输出
本帖最后由 黑马不黑 于 2013-12-3 23:10 编辑

自学中遇到的问题,比如有义字符串“abcd1234”,请问JAVA API里面有没有现成的函数可以实现逆序输出呢,要怎么实现啊?
作者: 李文帅    时间: 2013-12-3 22:52
好像没有吧,
这是我自己写的代码:
  1. /*
  2. * 思路:
  3. * 1、将字符串转换成字符数组
  4. * 2、将字符数组反转
  5. * 3、将反转的字符数组转换成字符串
  6. */
  7. public class StringTest {
  8.         public static void main(String[] args){
  9.                 String s = "abcd1234";
  10.                 System.out.println("原字符串:"+s);
  11.                 String s1 = reverseString(s);
  12.                 System.out.println("反转后的字符串:"+s1);
  13.         }
  14.         //整个字符串反转
  15.         public static String reverseString(String s){
  16.                 return reverseString(s,0,s.length());
  17.         }
  18.         //部分字符串反转
  19.         //start:要反转字符串的首位置(包含)
  20.         //end:要反转字符串的末位置(不包含)
  21.         public static String reverseString(String s,int start,int end){
  22.                 //将字符串转换成字符数组
  23.                 char[] c = s.toCharArray();
  24.                 //调用反转数组方法,反转数组
  25.                 reverse(c,start,end);
  26.                 //将反转的字符数组转换成字符串,并返回
  27.                 return new String(c);
  28.         }

  29.         //反转数组
  30.         public static void reverse(char[] c,int start,int end){
  31.                 for(int s=start,e=end-1;s<e;s++,e--){
  32.                         swap(c,s,e);
  33.                 }
  34.         }
  35.         //换位操作
  36.         public static void swap(char[] c,int x,int y){
  37.                 char t = c[x];
  38.                 c[x] = c[y];
  39.                 c[y] = t;
  40.         }
  41. }
复制代码

其实毕老师的Java基础视频里有讲到,你可以看一下
"黑马程序员_毕向东_Java基础视频教程第13天-07-String(字符串练习2)"
作者: oぃ汏少爺?    时间: 2013-12-4 09:25
可以试用reverse()方法

  1. class Demo4{
  2.         public static void main(String[] args) {
  3.                 StringBuffer a =new StringBuffer();
  4.                 a.append("abc");
  5.                 System.out.println(a.reverse().toString());
  6.         }
  7.        
  8. }
复制代码




作者: 守望幸福泉    时间: 2013-12-4 10:39
返回一个元素顺序被反转的 Array 对象。

arrayObj.reverse( )

必选项 arrayObj 参数为 Array 对象。

说明
reverse 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象。

假如数组是不连续的,reverse 方法将在数组中创建元素以便填充数组中的间隔。这样所创建的全部元素的值都是 undefined。

示例
下面这个例子说明了 reverse 方法的用法:

function ReverseDemo(){
   var a, l;                  // 声明变量。
   a = new Array(0,1,2,3,4);  // 创建数组并赋值。
   l = a.reverse();           // 反转数组的内容。
   return(l);                 // 返回结果数组。
}






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