输入的长度应该是偶数。问题是,在循环的第一次迭代中,它打印 Sc,但随后打印 ch 而不是 ho。我不知道如何实现这一跳跃。
public static void twoAtATime(String a) { // School
int len = a.length();
if(len%2 == 0) {
for(int i = 0; i <a.length()/2; i++) {
System.out.print(a.substring(i,i+1) + a.substring(i+1,i+2));
System.out.println();
}
}
输出应该是这样的:
Sc
ho
ol
最佳答案
修复它:
- 增加
i
通过2
. - 迭代直到
i < len
.
你可以改进它:
- 调用
substring
一次两个字符。 - 使用
println
带参数。 - 递增
i
一次-i += 2
.
改进后:
public static void twoAtATime(String s) {
int len = s.length();
if (len % 2 == 0) {
for (int i = 0; i < len; ) {
System.out.println(s.substring(i, i += 2));
}
}
}
关于java - 如何一次打印一个单词两个字母? - java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087752/