1.编程珠玑上面的算法,看了觉得很受用,一个问题用很简单很明了的方式说明,也就是所谓的循环移位的问题 代码如下: package haha; public class CReverse { public static void main(String[] args) { String s="123456789"; char[] sc=s.toCharArray(); CReverse cr=new CReverse(); //向左移动3位数i=3 cr.reverse(sc, 0, 2);//reverse(0,i-1); cr.reverse(sc, 3, sc.length-1);//reverse(i,n-1); cr.reverse(sc, 0, sc.length-1);//reverse(0,n-1); System.out.println(" result="+new String(sc)); } public void reverse(char[]s,int a,int b){ //临时变量存储交换值 char temp; //循环的次数为数字的个数的一半,根据中间的位置对称,左右对调 for(int i=0;i<(b-a+1)/2;i++){ //左边的数放到临时变量里 temp=s[a+i]; //相对于中间位置对称的数 对调到左边位置 s[a+i]=s[b-i]; //临时变量放到右边 s[b-i]=temp; } //System.out.println(" result="+new String(s)); } }