想用让replace位置进行调换
package com.wsw;
import java.util.PrimitiveIterator;
public class Home1 {
public static void main(String[] args) {
String str = "abcdef";
String newstr = reverse(str, 1, 4);
System.out.println(str);
System.out.println(newstr);
}
public static String reverse(String str, int start, int end) {
String newstr = str;
for (int i = start; i <=end; i++) {
char before=newstr.charAt(i);
char after=str.charAt(str.length() - i - 1);
newstr = newstr.replace(before, after);
}
return newstr;
}
}
结果如下,忘记了replace会替换所有。。。。。。
换了种方式
package com.wsw;
import java.util.Arrays;
import java.util.PrimitiveIterator;
public class Home1 {
public static void main(String[] args) {
String str = "abcdef";
String newstr = reverse(str, 1, 4);
System.out.println(str);
System.out.println(newstr);
}
public static String reverse(String str, int start, int end) {
char[] newchar = str.toCharArray();
for (int i = start; i <= end; i++) {
newchar[i] = str.charAt(str.length() - i - 1);
}
return String.valueOf(newchar);
}
}
或者用StringBuffer或者StringBuilder的replace方法
public static String reverse1(String str, int start, int end) {
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(str);
for (int i = start; i <= end; i++) {
stringBuffer.replace(i,i+1,""+str.charAt(str.length()-i-1));
}
return stringBuffer.toString();
}