3 回答
TA贡献1784条经验 获得超9个赞
您只需要迭代一次但执行不同的操作(char+1)或(char-1)取决于i:
public static void main(String[] args) {
String str = scn.nextLine();
for(int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if(i % 2 == 0) { // even
ch += 1;
} else { // odd
ch -= 1;
}
System.out.print(ch);
}
}
TA贡献1845条经验 获得超8个赞
只需使用一个循环来处理这两个字符:
for (int i = 0; i < str.length(); i = i + 2) {
char ch = str.charAt(i);
ch = (char) (ch + 1);
System.out.print(ch);
if (i + 1 < str.length()) {
ch = str.charAt(i + 1);
ch = (char) (ch - 1);
System.out.print(ch);
}
}
TA贡献1794条经验 获得超8个赞
我将“incremenet”值保存在一个变量中,+1并-1在我访问字符时交替使用:
private static String change(String s) {
StringBuilder sb = new StringBuilder(s.length());
int increment = 1;
for (int i = 0; i < s.length(); ++i) {
sb.append((char)(s.charAt(i) + increment));
increment *= -1;
}
return sb.toString();
}
添加回答
举报