3 回答
TA贡献1817条经验 获得超14个赞
如果你添加
System.out.println(zstr+str.charAt(halflen)+newstr);
对于满足奇数长度条件的印刷品,它应该可以解决问题。
发生的事情是,由于您将字符串的一半长度分成两半(并将该值保存在 halflen 变量中),因此您的 for 不会捕获位于 halflen 位置的字符。
TA贡献1779条经验 获得超6个赞
尝试这个
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;
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);
}
TA贡献1821条经验 获得超4个赞
这应该可以解决问题
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);
}
在您的代码中,您将中间字符留在后面。
添加回答
举报