有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何使用java反转字符串中n个部分的n个字符

例如,string=“ABCDEFGH”。如果n=2,则输出应为“BADCFEHG”;如果n=3,则输出应为“CBAFEDHG”。 我知道我应该使用stringbuilder进行反转,但如何将字符串拆分为n个部分,然后反转每个部分


共 (2) 个答案

  1. # 1 楼答案

    我不会给你这方面的代码,你需要通过尝试来学习

    逐步执行此要求:

    1. 如何逐块读取循环中的String。您需要了解如何计算每个块的边界
    2. 如何反转String:请参阅关于Reverse a String in JAVA
    3. 通过混合这两个步骤来创建输出

    不要试图一次完成所有事情。找出如何将这两者分开,然后将逻辑结合起来。这最终很简单

  2. # 2 楼答案

    String newStr="";
    String oldStr = "ABCDEFGH";
    for(int i =0; i<oldStr.length();i+=n) {
        if(i+n >= oldStr.length()){
           n = oldStr.length()-i;
       }
       newStr += new StringBuilder(oldStr.substring(i,i+n)).reverse().toString();
    }
    

    编辑:很抱歉误读了你的问题,这个小循环满足了你的要求! 我们在这里做的是进行oldString.length() / n迭代,将字符串拆分为n个部分。因为长度可能不能除以n,我们必须检查i+n是否大于单词的长度(最终创建一个IndexOutOfBoundsException)。如果是这种情况,我们只需设置n,这样它就可以将i添加到单词的其余部分。希望这能很好地解释