Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 倒装剩菜_Java - Fatal编程技术网

Java 倒装剩菜

Java 倒装剩菜,java,Java,我正在编写一个程序,该程序读取字符串并根据数字反转某些字符。 (即“出纳员”和3,应返回“LETREL) 我遇到的问题是,我需要反转剩余的额外字符 (即“HELLO”和3,当我需要它返回“LEHOL”时,它返回“LEHLO”) 这就是我目前正在尝试的方式 for (int i = 0; i < st.length();) { if (i + x > st.length()-1){ break; }

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

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; }
for(int i=0;ist.length()-1){
打破
}
st=st.substring(0,i)+新字符串(新StringBuilder(st.substring(i,i+x)).reverse())+st.substring(i+x);
i+=x;}

试试下面的方法。应该可以

for (int i = 0; i < st.length();) {
        if (i + x > st.length()-1){
            s += new String(new StringBuilder(st.substring(i, st.length())).reverse());
            break;
        }

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

        i += x;
    }
for(int i=0;ist.length()-1){
s+=新字符串(新StringBuilder(st.substring(i,st.length()).reverse());
打破
}
s+=newstring(newstringbuilder(st.substring(i,i+x)).reverse());
i+=x;
}

如果您不了解任何部分,请告诉我。祝您编码愉快!

试试下面的方法。应该可以

for (int i = 0; i < st.length();) {
        if (i + x > st.length()-1){
            s += new String(new StringBuilder(st.substring(i, st.length())).reverse());
            break;
        }

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

        i += x;
    }
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());
for(int i=0;ist.length()-1){
s+=新字符串(新StringBuilder(st.substring(i,st.length()).reverse());
打破
}
s+=newstring(newstringbuilder(st.substring(i,i+x)).reverse());
i+=x;
}
如果您不懂任何部分,请告诉我。祝您编码愉快!

String input=“Hello”;
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());
StringBuilder缓冲区=新的StringBuilder(); int x=3; 对于(int d=0;d
String input=“Hello”;
StringBuilder缓冲区=新的StringBuilder();
int x=3;
对于(int d=0;d
字符串串联,+和+=,由于要创建多个字符串,成本很高。 此外,在给定步长下单步遍历字符串也会更容易:

StringBuilder reversed = new StringBuilder(st.length);
for (int i = 0; i + x <= st.length(); i += x) {
    int nextI = Math.min(i + x, st.length());
    for (int j = i; j < nextI; ++j) {
        reversed.insert(i, st.charAt(j));
    }
}
s = reversed.toString();
StringBuilder反向=新StringBuilder(标准长度);

对于(inti=0;i+x字符串串联,+和+=,由于创建了多个字符串,因此成本很高。 此外,在给定步长下单步遍历字符串也会更容易:

StringBuilder reversed = new StringBuilder(st.length);
for (int i = 0; i + x <= st.length(); i += x) {
    int nextI = Math.min(i + x, st.length());
    for (int j = i; j < nextI; ++j) {
        reversed.insert(i, st.charAt(j));
    }
}
s = reversed.toString();
StringBuilder反向=新StringBuilder(标准长度);

对于(int i=0;i+x)谢谢你的回复!但这似乎不起作用,它现在正在无限循环,甚至没有返回任何内容。我已经检查了代码,它起了作用。你能告诉我你的示例输入吗。我已经试过st=“HELLO”“和x=3。感谢您的回复!但这似乎不起作用,它现在正在无限循环,甚至没有返回任何内容。我检查了代码,它起了作用。您能告诉我您的示例输入吗。我已尝试st=”HELLO“和x=3。感谢您的回复。这很有效,但由于某些原因,在结尾处添加了一个字母..我给了输入信号灯7,它返回GILPOTSTHG而不是GILPOTSTHRemove'-1',如果(input.length%x!=0)buffer.append((新的StringBuilder(input.substring(input.length-input.length%x-1)).reverse());啊,是的,删除-1似乎已经修复了它。再次感谢您的回复!感谢您的回复。这是有效的,但由于某些原因在结尾添加了一封信。我给输入信号灯7,它返回GILPOTSTHG而不是GILPOTSTHRemove'-1',如果(input.length%x!=0)buffer.append((new StringBuilder(input.substring(input.length-input.length%x-1)).reverse();啊,是的,删除-1似乎已经修复了它。再次感谢您的回复!