将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”
public static void reverse(String s,int start,int end){
if (s.length() != 0){ //判断字符串是否为空
char[] sub = s.substring(start-1,end).toCharArray();//获取需要反转字符串序列
for (int i = 0; i < sub.length; i++) {//循环修改原本字符串
char j = s.charAt(--end);
s = s.replace(j,sub[i]);
}
System.out.println(s);
}
}
运行结果:abfeefg
我想要达到的结果:abfedcg
public static void reverse(String s, int start, int end) {
if (s.length() != 0) { // 判断字符串是否为空
char[] sub = s.substring(start - 1, end).toCharArray(); // 获取需要反转字符串序列
char[] rev = new char[sub.length]; // 创建一个新的字符数组,用于存放反转后的字符串序列
for (int i = 0; i < sub.length; i++) {
rev[i] = sub[sub.length - i - 1]; // 将反转后的字符串序列存放到新的字符数组中
}
s = s.substring(0, start - 1) + new String(rev) + s.substring(end); // 将反转后的字符串序列拼接到原字符串序列中
System.out.println(s);
}
}
s = s.replace(j,sub[i]);
你在搞笑吗,你这一替换,可不管它在前面在后面,就把所有的字符都替换了
老老实实的用数组做
或者字符串拼接
别老想图省事