java - 将字符串反转 (x) 次?

标签 java while-loop

在我得到 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/

相关文章:

java - libGDX:从 2D 屏幕打开 3D 场景

c - 如何使用循环在 C 中制作表格

c - 如何在一段时间内重复一个过程直到按下回车?

for循环内的python while循环不会中断

java - 尝试制作altcase。 Char 被取消引用,我该如何解决这个问题?

java - 我可以对带有按钮标记名的 span 元素使用什么定位器

java - Webview + 底部的 admob + LinearLayout

java - 当我将撇号放入 .properties 文件中时,为什么 mvn clean install 失败?

while-loop - 是否可以在 Kotlin 的 while 条件体中初始化一个变量?

c - 当满足 if 语句时程序停止循环