2ヶ月前にJavaの学習を開始しましたが、この問題が発生しました。誰かが私にこの1つを助けてくれますか?スレッド "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(I)は、'文字を返します。コード、麻痺ではないエル。 'int a =(stri.charAt(i) - '0')'を試してください – BretC