gpt4 book ai didi

java - java中通过索引从字符串中获取字符

转载 作者:行者123 更新时间:2023-12-02 02:21:12 28 4
gpt4 key购买 nike

我可能只是累了,无法正常思考了,但为什么“13”在这里只打印一次? (intelliJ 告诉我“i == 11 | i == 13”始终为真,但我不明白这有什么意义)

        for (int i = 0; i < 14; i++) {
System.out.println(i);
String line = clientReader.readLine();
int length = line.length();
if (i == 0 || i == 5 || i == 6) {
line = line.substring(7, length - 6);
} else if (i == 1 || i == 2 || i == 3 || i == 4 || i == 8 || i == 9 || i == 10 || i == 12) {
line = line.substring(8, length - 7);
} else if (i == 7) {
line = line.substring(9, length - 8);
} else if (i == 11 || i == 13) {
line = line.substring(10, length - 9);

}
data[i] = line;
System.out.println(i);
}

附:如果我在最后一个 else 的末尾添加 System.out.println(line) 如果它打印正确的内容,则 line.substring 不会给出错误。

最佳答案

最后else if始终为真,因为您的循环控制变量从 0 运行直到13以及在最后一个 else if 之前您没有检查过的唯一两个数字是 1113因此,如果上述条件都不成立,则 i将是 1113因此,为什么 IntelliJ 足够聪明,知道它总是正确的,因此控制将始终绑定(bind)在最后一个 else if 内。不满足上述条件时阻塞。

如果将循环条件增加到类似 i < 15 的值或以上则 IntelliJ 不会声明 else if (i == 11 || i == 13)始终为 i可能是14 .

关于java - java中通过索引从字符串中获取字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48480634/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com