2017-02-28 10 views
-5
StringBuffer sb3 = new StringBuffer("ankit"); 
System.out.println(sb3); 
sb3.insert(10,"kumar"); 
System.out.println(sb3); 

例外StringBufferオブジェクトに指定された場所に文字列を挿入することができません

Exception in thread "main" java.lang.StringIndexOutOfBoundsException:   
    String index out of range: 10 
    at java.lang.AbstractStringBuilder.insert(Unknown Source) 
    at java.lang.StringBuffer.insert(Unknown Source)  
    at StringBufferEX.main(StringBufferEX.java:28) 
+3

位置10に何かを長さ5の文字列バッファに挿入しようとすると、どのようなことが期待できますか? – khelwood

+0

あなたは 'sb3.insert(0、" kumar ");'? –

+1

診断:あなたのコードは、書かれているように意味がないことをしています。解決策:javadocを読んで、それを基にして、あなたが実際にしようとしていることを行う*正しい方法を見つけ出してください。真剣に。 javadocを読んでください。 –

答えて

1
sb3.insert(5, "kumar"); 

出力:ankitkumar

sb3.insert(0, "kumar"); 

出力:kumarankit

StringBuffer insert(int offset, String s) - 指定された文字列を指定された位置に挿入するために使用されます。

アクセスしようとしているオフセット10はそこにはありません。それがStringIndexOutOfBoundsExceptionを取得する理由です。

-1

これは動作するはずです:これはギャップを埋めるためにスペースを追加します

StringBuffer sb3 = new StringBuffer("ankit"); 
int desiredPosition = 10; 
for(int i = sb3.length(); i <= desiredPosition; i++) sb3.append(' '); 
sb3.insert(desiredPosition, "kumar"); 
System.out.println(sb3); 

、StringIndexOutOfBoundsExceptionをを回避することができます。

関連する問題