gpt4 book ai didi

java - 处理 ArrayIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-11-30 06:14:35 27 4
gpt4 key购买 nike

我的问题:

我正在尝试在我的方法中处理ArrayIndexOutOfBoundsException。目前它接受用户输入的字符串,如果它匹配 "^[a-zA-Z]*$" (字母/特殊字符),那么它应该继续循环。数组大小为[26]。当我输入 27 时,它应该捕获并处理这个异常,但它只是抛出错误。

我该如何解决这个问题?

public String checkInput(String userInput) {

try {
while (input.matches("^[a-zA-Z]*$")) {
System.out.println("Please enter a number");
userInput = sc.next();
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("The input is invalid, please enter the answer again.");
userInput = sc.next();
}

return userInput;
}

提前致谢

最佳答案

在 Java 中,String 的行为与数组不同。它是一个不可变的字符序列。变量只是对象的引用。所以

userInput = sc.next();

不修改原始字符串。 userInput 变量仅引用一个新字符串和引用。前一个字符串的计数会递减。如果达到 0,则超出范围,稍后将被垃圾收集。

换句话来说,代码中的任何内容都不会引发 ArrayIndexOutOfBoundsException

如果想控制字符串长度不超过26,就用它的length方法即可:

if (userInput.length() > 26) {
...
}

关于java - 处理 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49507903/

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