Sin*_*met 0 java stringbuilder
我试图在一个for循环中插入一个Stringbuilder,但它崩溃了.这是我的代码
StringBuilder sb = new StringBuilder("This is a text");
for(int i = 0;i < sb.length();i++){
if(sb.charAt(i) == 't'){
sb.insert(i, 't');
}
}
Run Code Online (Sandbox Code Playgroud)
这样做的目的是使每个't'加倍.
你得到了一个OutOfMemoryError,因为你没有跳过t你加倍的角色.
This is a text
^
This is a ttext
^
This is a tttext
^
Run Code Online (Sandbox Code Playgroud)
这种情况一直持续到内存不足为止.
您必须在插入doubled之后t通过递增来跳过刚刚添加的内容.it
if (sb.charAt(i) == 't')
{
sb.insert(i, 't');
i++;
}
Run Code Online (Sandbox Code Playgroud)