将一个字符串进行反转。将字符串中指定部分进行反转。
比如:“abcdefg”反转为“abfcdeg”
方式一:转换为char[]
public String reverse(String str, int startIndex,ind endIndex){
if(str != null){
char[] arr = str.toCharArray();
for(int x = startIndex, int y = endIndex;x<y;x++,y--){
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
return new String(arr);
}
return null;
}
方式二:使用String的拼接操作
public String reverse1(String str, int startIndex,int endIndex){
if(str != null){
//第一部分
String reverseStr = str.subString(0, startIndex);
//第二部分
for(int i = endIndex;i >= startIndex;i--){
reverseStr += str.charAt(i);
}
//第三部分
reverseStr += str.subString(endIndex + 1);
return reverseStr;
}
}
方式三:使用StringBuffer/StringBuilder替换String
public String reverse2(String str, int startIndex, int endIndex){
if(str != null){
StringBuilder builder = new StringBuilder(Str.length());//直接字符串有多长就构建多长的
//第一部分
builder.append(str.subString(0,satrtIndex));
//第二部分
for(int i = endIndex;i >= startIndex;i--){
builder.append(str.charAt(i));
}
//第三部分
builder.append(str.subString(endIndex + 1));
//由StringBuilder转换为String
//方式一:通过String构造器
//return new String(builder);
//方式二:调用toString()
return builder.toString();
}
return null;
}
参考:
https://www.bilibili.com/video/BV1Kb411W75N/?p=475&spm_id_from=333.1007.top_right_bar_window_history.content.click