为什么索引越界?
Why index is out of bouds?
我有这段文字 Hello, {between brackets 1}and{between brackets 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);
中,您没有删除右括号。所以文本是 "}and{between brackets 2"
.
试试这个:
text = text.substring(text.indexOf("}") + 1), text.length());
PS:学习如何使用调试器。在这种情况下很容易而且很有帮助。
我有这段文字 Hello, {between brackets 1}and{between brackets 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);
中,您没有删除右括号。所以文本是 "}and{between brackets 2"
.
试试这个:
text = text.substring(text.indexOf("}") + 1), text.length());
PS:学习如何使用调试器。在这种情况下很容易而且很有帮助。