java - 插入for循环失败

标签 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');
    }
}

这样做的目的是将每个“t”加倍。

最佳答案

您将收到 OutOfMemoryError,因为您没有跳过要加倍的 t 字符。

This is a text
          ^
This is a ttext
           ^
This is a tttext
            ^

这会一直持续到内存耗尽为止。

您必须在插入双倍 t 后通过递增 i 来跳过刚刚添加的 t

if (sb.charAt(i) == 't')
{
    sb.insert(i, 't');
    i++;
}

关于java - 插入for循环失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33813659/

相关文章:

android - StringBuilder 似乎超出了容量

java - 将多个二进制文件复制到一个二进制文件

java - 如何使用元素值获取xml元素?

java - 如何获取用户输入的年份的最后两位数

java - StringBuilder.toString 是否保留构建的字符串?

c# - StringBuilder 的最大容量

java - 直接从字节数组播放声音 - Java

java - Swing 和 AWT 混合不好,但还是做了,为什么?

java - org.springframework.scheduling.annotation @Async 抛出服务器错误

java - 在Java中使用stringbuilder对象创建字符串的时间复杂度