java - 为什么索引越界了?

标签 java string substring indexoutofboundsexception

我有这个文本你好,{括号之间1}和{括号2之间},我想用某种颜色给括号之间的文本着色,这就是我所做的:

String text = "Hello, {between brackets 1}and{between brackets 2}";
String output = "";
while(text.contains("}")){                
    output = output + text.substring(0, text.indexOf("{"));
    output = output + "<font color='#00e1ff'>"+text.substring(
    text.indexOf("{")+1, text.indexOf("}")-1)+"</font>";
    text = text.substring(text.indexOf("}"), text.length()-1);
}

但是我在第 10 行得到了一个 indexOutOfBoundsException ,它是:

output = output + "<font color='#00e1ff'>"+text.substring(
text.indexOf("{")+1, text.indexOf("}")-1)+"</font>";

最佳答案

在你的text = text.substring(text.indexOf("}"), text.length()-1);中你没有删除右括号。所以文本是"}和{括号2"之间

试试这个:

text = text.substring(text.indexOf("}") + 1), text.length());

PS:学习如何使用调试器。在这种情况下,这很容易并且非常有帮助。

关于java - 为什么索引越界了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31971864/

相关文章:

java - 在 Android 中使用定时器进行短信调度

java - c/c++/java/PHP有闭包吗?

c - itoa 将整数转换为字符串的问题

php - as3 - 格式化来自 mysql 的时间戳字符串

C++ 更快地进行字符串加法?

java - 命名查询根据包含某些值的列表(实例变量)查找所有实体

java - 在java中使用对象数组时出现NullPointerException

java - 从字符串中的小时分钟秒更改为秒

python - 如何从 Python 语音识别中提取子字符串

C - 在 memcpy 中使用 strchr