// 将字符串转换为字符数组,方便操作 char[] chs = s.toCharArray(); // 获取字符数组的长度 intlen= chs.length; // 第一步:反转字符串的前 len - k 个字符 reverse(chs, 0, len - k - 1); // 第二步:反转字符串的后 k 个字符 reverse(chs, len - k, len - 1); // 第三步:反转整个字符串 reverse(chs, 0, len - 1); // 输出最终旋转后的字符数组(即字符串) System.out.println(chs); }
// 反转字符数组中从 begin 到 end 的部分 publicstaticvoidreverse(char[] chs, int begin, int end) { // 交换 begin 和 end 位置的字符,直到两个指针相遇 while (begin <= end) { chartemp= chs[begin]; // 保存 begin 位置的字符 chs[begin++] = chs[end]; // 将 end 位置的字符赋值给 begin chs[end--] = temp; // 将保存的 temp 赋值给 end } } }