如何打印字符串的每三个字符?JAVA

如何打印字符串的每三个字符?JAVA,java,Java,我正在尝试打印字符串的每3个字符,因此示例如下: 123456返回36 但是我下面的代码返回14 公共字符串getEveryThird(){ 字符串newString=“”; 对于(int i=0;i

我正在尝试打印字符串的每3个字符,因此示例如下:
123456
返回
36

但是我下面的代码返回
14

公共字符串getEveryThird(){
字符串newString=“”;
对于(int i=0;i
很好的尝试。唯一的问题是您选择了错误的除法余数,因为元素从0开始

尝试以下条件:

if (i % 3 == 2)

它返回
14
,因为循环从
0
开始,
0%0
等于
0
。 然后,当它到达数字
4
时,索引
i
等于
3
,再次
3%3=0

尝试以下方法:

if((i+1) % 3 == 0){
    newString += (string.charAt(i));
}

您当前的方法在剩余的时间内关闭(如前所述),但是有一个更快的方法可用;不要迭代每个字符,而是从第三个字符开始,在每次迭代时将索引增加三。请记住,第三个字符位于索引2(
0
1
2
)。另外,最好在串接上使用
StringBuilder
(因为Java
String
是不可变的)。像

StringBuilder sb=新建StringBuilder();
对于(int i=2;i
这是一个重复的问题。请参考这个
StringBuilder sb = new StringBuilder();
for (int i = 2; i < string.length(); i += 3) {
    sb.append(string.charAt(i));
}
return sb.toString();