无法在StringBuffer对象中的指定位置插入String

时间:2017-02-28 11:46:57

标签: java

StringBuffer sb3 = new StringBuffer("ankit");
System.out.println(sb3);
sb3.insert(10,"kumar" );
System.out.println(sb3);

异常

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)

2 个答案:

答案 0 :(得分:1)

sb3.insert(5, "kumar");

输出:ankitkumar

sb3.insert(0, "kumar");

输出:kumarankit

StringBuffer insert(int offset, String s) - 用于在指定位置插入带有此字符串的指定字符串。

你试图访问的偏移量10将不存在。这就是你得到StringIndexOutOfBoundsException的原因。

答案 1 :(得分:-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。