package String.lianxi;
public class ClassDemo2 {
/**
* 将一个字符串按指定位置进行反转 如“abcdef”,从2——5反转 结果是:abfedc
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "abcdef";
System.out.println("源串:" + s);
System.out.println("反转后:" + reverseString(s, 2, 5));
}
private static String reverseString(String s, int i, int j) {
// TODO Auto-generated method stub
char[] ch = s.toCharArray();// 字符串变数组;
reverse(ch, i, j);// 反转数组;调用reverse()方法,5和4换位置,2和3换位置;
return new String(ch);// 将数组变成字符串;
/*我感觉这应该这样写,但是错的为什么?
char[] chs =reverse(ch, i, j);返回类型是数组,我们用数组接收
return new String(chs); 把返回的数组转成字符串*/
}
private static String reverse(char[] ch, int x, int y) {
for (int start = x, end = y; start < end; start++, end--) {
swap(ch, start, end);
}
return null;// 这为什么返回空值呢?按道理应该返回你换完位置的数组?
应该是return ch;但结果是错的?为什么?
// retrun ch;????
}
private static void swap(char[] ch, int x, int y) {
char temp = ch[x];
ch[x] = ch[y];
ch[y] = temp;
}
}
|