如何打印字符串的第三个字符?爪哇

时间:2020-02-17 21:46:57

标签: java

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

但是我下面的代码返回14

public String getEveryThird() {
    String newString = "";

    for (int i = 0; i < string.length(); i++) {

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

    return newString;
}

3 个答案:

答案 0 :(得分:6)

好尝试。唯一的问题是,由于元素从0开始,您选择了除法的错误余数。

尝试以下条件:

if (i % 3 == 2)

答案 1 :(得分:4)

您当前的方法在其余的方法中已经失效(如前所述),但是可以使用更快的方法。而不是迭代每个字符,而是从第三个字符开始,并在每次迭代时将索引增加三。请记住,第三个字符在索引2(012)处。另外,最好在StringBuilder上使用String并置(因为Java String是不可变的)。喜欢,

StringBuilder sb = new StringBuilder();
for (int i = 2; i < string.length(); i += 3) {
    sb.append(string.charAt(i));
}
return sb.toString();

答案 2 :(得分:0)

返回14是因为您的循环从0开始并且0 % 0等于0。 然后,当数字为4时,索引i等于3,再等于3 % 3 = 0

尝试类似的东西:

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