首页 > 解决方案 > 反向剩菜

问题描述

我正在开发一个程序,该程序读取一串字符并根据数字反转某些字符。
(即“TELLER”和3给出,它应该返回“LETREL)我遇到
的问题是我需要反转剩余的额外字符
(即“HELLO”和3给出,当我返回“LEHLO”时需要它返回“LEHOL”)
这就是我目前正在尝试的方式

for (int i = 0; i < st.length();) {
            if (i + x > st.length()-1){
                break;
            }

            st = st.substring(0, i) + new String(new StringBuilder(st.substring(i, i + x)).reverse()) + st.substring(i + x);

            i += x; }

标签: java

解决方案


String input = "Hello";
StringBuilder buffer = new StringBuilder();
int x = 3;

for(int d = 0; d < Math.floor(input.length / x); d++){
    buffer.append((new StringBuilder(input.substring(d * x, (d + 1) * x))).reverse());
}

if(input.length % x != 0) buffer.append((new StringBuilder(input.substring(input.length - input.length % x - 1))).reverse());

System.out.println("Result is " + buffer.toString());

推荐阅读