gpt4 book ai didi

java - 无法解决索引超出范围错误

转载 作者:行者123 更新时间:2023-11-30 03:39:56 24 4
gpt4 key购买 nike

我正在尝试编写一个代码来格式化一系列字符串(我早些时候发布了这个,但几分钟后删除了它,因为我认为我没有付出足够的努力)。我现在重新发布,因为我不断收到“索引超出范围”错误,但不确定如何修复它。

我已经尝试将我能想到的所有内容包装在“if”语句中,这些语句应该防止超出范围的错误,但它们没有帮助!

你看出什么问题了吗?

(仅供引用:ExpressionTools.isOp(char) 是一种返回 true 或 false 的方法,具体取决于所讨论的字符是否是运算符,也称为: +、-、*、/)

public static List<String> postfix = new ArrayList<String>();

public static String result; // the result of corrected string

// corrects formating in postfix string if any errors, enters into postfix
// array
public static void spaces(String a, int x) {
StringBuilder b = new StringBuilder(a);

for (int i = x; i < b.length(); i++) {
if (b.charAt(i) == ' ') {
while (b.charAt(i + 1) == ' ') {
b.deleteCharAt(i + 1);
}
result = b.toString();
}
if (ExpressionTools.isOp(b.charAt(i))) {
if (i+1 == 0) break;
else{
while (ExpressionTools.isOp(b.charAt(i + 1))){
b.insert(i+1, ' ');
}
}
}
}
System.out.println(result);
String r = b.toString();
postfix.add(r);

}

最佳答案

当你有一个循环,例如:

for (int i = x; i < b.length(); i++)

ix 变为 b.length()-1

因此,i+1 将到达 b.length(),此时 b.charAt(i + 1) 已输出范围并会抛出您得到的异常。

关于java - 无法解决索引超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27010700/

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