给定一个字符串,反转指定的部分。比如字符串为abc,全部反转为cba; 如果字符串为abcdefg,那么反转下标2-4的部分,字符串变为abedcfg。
使用对换反转法的实现代码如下:
package com.threeTop.www;
/**
* 字符串的反转
* @author wjgs
*
*/
public class Reverse {
/**
* 对换位置反转字符串
* @param str
* @param start
* @param end
* @return
*/
public static String reverse(String str,int start,int end)
{
char[]array=str.toCharArray();
int mid=(end-start)/2+start;
for(int i=0;i<=mid-start;i++)
{
swap(array,start+i,end-i);
}
return String.valueOf(array);
}
/**
* 数组指定位置的互换
* @param array
* @param i
* @param j
*/
private static void swap(char[] array, int i, int j) {
// TODO Auto-generated method stub
char temp=array[i];
array[i]=array[j];
array[j]=temp;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Reverse.reverse("abcdefg", 0,6));
System.out.println(Reverse.reverse("abcdefg", 2,4));
}
}