部分字符串反转

问题:字符串"abcdefg"反转为 “abfedcg”
来自尚硅谷视频
/**
* @auto
* @create 2020-03-29-15:10
*/
public class Test021 {
public static void main(String[] args) {
String str = reverse("abcdef", 2, 4);
System.out.println(str);
Test021 t=new Test021();
str=t.reverse1("abcdef", 2, 4);
System.out.println(str);
str=t.reverse2("abcdef", 2, 4);
System.out.println(str);
}
//利用数组下标反转
public static String reverse(String string, int start, int end) {
if (string != null) {
char[] chars = string.toCharArray();
for (int i = start, j = end; i < j; i++, j--) {
char temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
}
return new String(chars);
}
return null;
}
//利用字符串拼接
public String reverse1(String string, int start, int end) {
if (string != null) {
String reverseStr = string.substring(0, start);
for(int i=end;i>=start;i--){
reverseStr+=string.charAt(i);
}
reverseStr+=string.substring(end+1);
return reverseStr;
}
return null;
}
// 对String进行优化
public String reverse2(String string,int start,int end){
if(string!=null){
StringBuilder sl=new StringBuilder();
// 开头不变部分(左闭右开原则截取)
sl.append(string.substring(0,start));
// 反转部分
for(int i=end;i>=start;i--){
sl.append(string.charAt(i));
}
sl.append(string.substring(end+1));
return sl.toString();
}
return null;
}
}
posted @ 2020-03-29 15:28  玄空2  阅读(319)  评论(0编辑  收藏  举报