我在2個月前開始學習Java並陷入了這個問題。有誰能給我這個幫助嗎?線程「main」中的異常java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:52
的問題:
給定一個字符串,在原字符串中每個數字,代替手指與後面的字符的許多事件。
所以字符串「a3tx2z」會產生「attttxzzz」。
我的代碼:
@param str
@return blown up string
public static String blowup(String str) {
StringBuilder stri = new StringBuilder(str);
for(int i = 0; i<stri.length();i++){
if(Character.isDigit(stri.charAt(i))){
int a = stri.charAt(i),
c = a - 1;
char b = str.charAt(a+1);
while (a >0){
stri.insert(c, b);
a --;
}
}
}
str = stri.toString();
return str; // TODO ADD YOUR CODE HERE
}
例外:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 52
at java.lang.String.charAt(String.java:658)
at HelloWorld.blowup(HelloWorld.java:15)
at HelloWorld.main(HelloWorld.java:6)
在代碼中,你是不是字符轉換爲數字。'INT A = stri.charAt(我)'將返回字符代碼,而不是麻木呃。嘗試'int a =(stri.charAt(i) - '0')' – BretC