• StringBuilder的使用与总结


    StringBuilder 用于解决字符串频繁修改带来的内存消耗
    所以将来有频繁修改字符串内容这样的操作时,首先使用StringBuiler

     1 public class demo01 {
     2     public static void main(String[] args) {
     3         //内部默认为空字符串
     4         StringBuilder builder = new StringBuilder();
     5         
     6         //内部默认为HelloWorld
     7         StringBuilder builder1 = new StringBuilder("HelloWorld");
     8         
     9         //append用于在字符串末尾追加
    10         builder.append("Try your best to learn Java");
    11         
    12         //replace用于替换
    13         builder.replace(23,28,"js");//Try your best to learn js
    14         String str = builder.toString();
    15         System.out.println(str);
    16         
    17         builder.delete(0, 4);//your best to learn js
    18         String str1 = builder.toString();
    19         System.out.println(str1);
    20         //插入操作
    21         builder.insert(0, "we ");//we   your best to learn js
    22         String str2 = builder.toString();
    23         System.out.println(str2);
    24     }
    25 }

    builder.reverse()翻转字符串

     1 /**
     2  * builder.reverse()翻转字符串
     3  * @author Administrator
     4  *判断回文
     5  */
     6 public class demo02 {
     7     public static void main(String[] args) {
     8         String str = "雾锁山头山锁雾";
     9         StringBuilder builder = new StringBuilder(str);
    10         builder.reverse();
    11         String str1 = builder.toString();
    12         if(str.equals(str1)){
    13             System.out.println("yes");
    14         }
    15         else{
    16             System.out.println("no");
    17         }
    18     }
    19 }

    总结:

    StringBuilder 是可变字符串,字符串的内容计算建议采用StringBuilder实现,这样性能会好一些;

    java的字符串连接过程是利用StringBuilder实现的

    String s ='ab';
    String s1 = s+'de'+1;
    String s1 = new StringBuilder(s).append("de").append("1").toString();

    StringBuffer是线程安全的,同步处理,性能稍慢;

    StringBuilder是非线程安全的,并发处理,性能稍快;

  • 相关阅读:
    【生活没有希望】poj1273网络流大水题
    SPOJ FASTFLOW网络流水题
    【生活没有希望】hdu1166敌兵布阵 线段树
    【生活没有希望】NOIP2010初赛 烽火传递 smartoj1475
    【填坑向】bzoj2038小Z的袜子 莫队
    (RMQ版)LCA注意要点
    【填坑向】spoj COT/bzoj2588 Count on a tree
    bzoj4364: [IOI2014]wall砖墙
    【听说是线段树】bzoj1012 [JSOI2008]最大数maxnumber
    bzoj4196 [Noi2015]软件包管理器 树链剖分+线段树
  • 原文地址:https://www.cnblogs.com/zflovezk9/p/6783727.html
Copyright © 2020-2023  润新知