gpt4 book ai didi

java - 无法弄清楚为什么我收到 StringIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 17:19:51 31 4
gpt4 key购买 nike

我有以下代码

while (input.hasNextLine()) {
String line = input.nextLine();
System.out.println(line); // added to test if anything in String, and there is
int whiteSpace = 0;
int j = 0;

while (Character.isWhitespace(line.charAt(j))) {
whiteSpace++;
j++;
}
}

当我运行它时,我得到一个 StringIndexOutOfBoundsException: String index out of range: 0,这对我来说毫无意义。我添加了一个 System.out.print(line) 来测试字符串中是否有任何内容,并且确实存在。我尝试用更高的值初始化j,仍然得到相同的结果,只是不同的字符串索引超出范围:?。有谁知道为什么我会得到这个异常(exception)?对我来说毫无意义。

最佳答案

尝试更多类似这样的事情:

while(j<line.length) {
if(Character.isWhitespace(line.charAt(j))) {
whiteSpace++;
}
j++;
}

这可能更接近您想要做的事情。你现在所拥有的,如果它有效的话,只会在有 whiteSpace 时增加 j ,因此,即使你没有收到错误,你也会除非您有一个仅由空格组成的 String ,否则会陷入无限循环。上面的代码将在每个字符上递增 j (因此您在整个字符串中检查每个字符一次且仅一次),但仅在 Character.isWhitespace 时递增 whiteSpace (line.charAt(j)) 返回 true

编辑:鉴于您实际想要执行的操作的重新说明,只需删除变量j,因为它会混淆可读性(因此我感到困惑)。

while(whiteSpace<line.length && Character.isWhitespace(line.charAt(whiteSpace)))
{ whiteSpace++; }

关于java - 无法弄清楚为什么我收到 StringIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498664/

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