给定一个新字符串作为输入,在字母半部分最先出现的位置创建一个新字符串。如果字符串的长度为奇数,则中间的字符保持在其位置。
我能够以偶数字符串长度打印所需的字符串,但是遇到一些奇数长度字符串的问题,因为奇数字符串长度的情况下,中间的字符应该在它自己的位置。该怎么做呢?
String str = "TRISECT";
int len = str.length();
int halflen = len / 2;
String newstr = "";
String zstr = "";
if(len%2==0){
    for (int i = 0; i < halflen; i++) {
        char ch = str.charAt(i);
        newstr = newstr + ch;
    }
    for (int j = halflen; j < len; j++) {
        char ch = str.charAt(j);
        zstr = zstr + ch;
    }
    System.out.println(zstr + newstr);
}else{
    for (int i = 0; i < halflen; i++) {
        char ch = str.charAt(i);
        newstr = newstr + ch;
    }
    for (int j = halflen + 1; j < len; j++) {
        char ch = str.charAt(j);
        zstr = zstr + ch;
    }
    System.out.println(zstr + newstr);
}发布于 2019-08-09 00:13:18
这应该能起到作用
String str = "TRISECT";
        int len = str.length();
        int halflen = len / 2;
        String newstr = "";
        String zstr = "";
        if(len%2==0){
            for (int i = 0; i < halflen; i++) {
                char ch = str.charAt(i);
                newstr = newstr + ch;
            }
            for (int j = halflen; j < len; j++) {
                char ch = str.charAt(j);
                zstr = zstr + ch;
            }
            System.out.println(zstr + newstr);
        }else{
            for (int i = 0; i < halflen; i++) {
                char ch = str.charAt(i);
                newstr = newstr + ch;
            }
            char middle = str.charAt(halflen);
            for (int j = halflen+1; j < len; j++) {
                char ch = str.charAt(j);
                zstr = zstr + ch;
            }
            System.out.println(zstr +middle+ newstr);
        }在你的代码中,你留下了中间的字符。
https://stackoverflow.com/questions/57416408
复制相似问题