字符串指定部分进行反转--复习完自动装箱、拆箱,String类及其相关方法,Math类及其方法,StringBuilder、StringBuilder类以及Arrays类相关信息后,第一印象下进行的算法处理:
public class Homework {
public static void main(String[] args) {
String str = "abcdef";
System.out.println(" 输入字符串:" + str);
System.out.println("反转后的字符串:" + reverse(str, 0, 4));
}
public static String reverse(String str, int start, int end) {
if (str == null) {
return null;
}
if (start > end) {
return "start不能大于end";
}
if (start < 0 || end >= str.length()) {
return "start及end不能越过数组下标范围";
}
// 字符串转换为字符数组
char[] chars = str.toCharArray();
// 交换总次数的计算 (end-start)/2.0 获取到double数值结果 向上取整
int flag = (int)Math.ceil((end - start) / 2.0);
// 字符数组内字符交换
for (int i = 0; i < flag; i++) {
char temp = chars[start];
chars[start] = chars[end];
char[end] = temp;
start++;
end--;
}
// 字符数组拼接为可变字符串对象,再转换为字符串对象
StringBuilder sb = new StringBuilder();
for (int i = 0; i < chars.length; i++) {
sb.append(chars[i]);
}
return sb.toString();
}
}