在我得到 for 循环等和字符串缓冲区之前,这个必须是这样的..使用 while 循环并通过操作它来创建字符串..而不是使用字符串缓冲区等。
public class C {
public static void main(String[] args) {
System.out.println(rotate("tom", 3));
}
public static String rotate(String s, int n) {
String c = "";
do {
if (s.equals("")) {
return c;
} else {
c = s.charAt(0) + c;
n--;
System.out.println(n);
}
s = s.substring(1);
} while (n > 0);
return c;
}
}
正如标题所说..我需要程序将名称“tom”旋转n次..因此在本例中旋转3次。
它执行一次并将“tom”更改为“mot”,但我不知道如何在三次中的第二次将其更改回“tom”。 有人提供任何建议吗?
最佳答案
如果您将问题分解为两个解决方案,这可能会非常有效! (N 是字符串必须反转的次数!)
- 当 N 为偶数时
- 当 N 为奇数时
现在运行几个例子你应该知道,当 N 是偶数时,颠倒 N 次的单词就是单词本身!所以:
if(N%2 == 0){
return str;
}
当N为奇数时,只需反转一次!不需要一个 while 循环来不断反转 N 次,因为如果 N 是奇数,N-1 就是偶数!当反转到 N-1 时,字符串应该返回自身!所以再反转一次就会得到你想要的输出。
所以你添加到上面的 if 语句
else{
//do reverse function
}
这使得您不必不断反转字符串。您只会执行一次,当且仅当 N 为奇数!
希望有帮助。 :)
关于java - 将字符串反转 (x) 次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21865913/