字符串循环右移java
时间: 2024-10-30 21:05:59 浏览: 22
在Java中,如果你想要实现字符串的循环右移,你可以通过创建一个新的字符数组,然后将原字符串的第一个字符添加到数组的末尾,依次将后面的字符移到前面,形成右移的效果。这通常被称为"字符串翻转",因为结果看起来就像原始字符串绕着中心点旋转了一定次数。
下面是一个简单的示例代码片段:
```java
public String rotateString(String str, int k) {
if (str == null || k <= 0 || k > str.length()) {
return str;
}
// 将字符串长度和循环次数对齐取模,防止溢出
k = k % str.length();
char[] chars = str.toCharArray();
reverse(chars, 0, chars.length - 1);
reverse(chars, 0, k - 1);
reverse(chars, k, chars.length - 1);
return new String(chars);
}
private void reverse(char[] chars, int start, int end) {
while (start < end) {
char temp = chars[start];
chars[start] = chars[end];
chars[end] = temp;
start++;
end--;
}
}
```
在这个例子中,`rotateString`函数接受一个字符串和一个整数k作为输入,首先检查边界条件,然后计算实际需要移动的位数。接着,它将字符串转换为字符数组,并通过三次反转实现了循环右移的效果。
阅读全文