我要实现数组中位置的交换,但是我用了第一种就不对,现在必须使用第二种才行,是不是这么回事,我这么想的,第一种是外层嵌套内层循环,也就是不同步执行,外层控制内层;然而第二种是[变量i[/b] 和变量 j同时执行的。是不是这么分析就知道为什么错的。大家也给我说一下吧
①:for (int i = start; i < end; i++) {
for (int j = end; j > start; j--) {
char temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
② :for(int i=start,j=end;i<j;i++,j--){
char temp = array[i];
array[i] = array[j];
array[j] = temp;
}
/*
* 2.将一个字符串进行反转。将字符串中指定部分进行反转。比如将“abcdefg”反转为”abfedcg”
*/
public static String MethodReverse(String str, int start, int end) {
char[] array = str.toCharArray();
/*错法:for (int i = start; i < end; i++) {
for (int j = end; j > start; j--) {
char temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}*/
for(int i=start,j=end;i<j;i++,j--){
char temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return new String(array);
}