自定义StringBuilder类拼接非空字符串
主要目的: 为了拼接多个非空字符串,还能达到链式的装X效果
这里不考虑线程安全,所以使用StringBuilder快速拼接非空内容,中间用","作为分隔。 代码如下:
package com.baidu;
import org.apache.commons.lang.StringUtils;
import org.junit.Test; public class MyStringBuilder {
private StringBuilder sb;
private Thread thread;
public MyStringBuilder() {
this.thread = Thread.currentThread ();
//判断放在放在构造函数中
if (sb == null) {
sb = new StringBuilder ();
}
} public StringBuilder getSb() {
return sb;
} public MyStringBuilder setSb(StringBuilder sb) {
this.sb = sb;
return this;
} //item为空不拼接
public MyStringBuilder append(String item) {
if (this.thread != Thread.currentThread ()) {
throw new RuntimeException ("不能在多线程中使用");
} if (StringUtils.isNotBlank (item)) {
if (sb.length () > 0) {
sb.append (",");
}
sb.append (item);
}
return this;
} //不暴漏get方法,直接用类实例toString()
public String toString() {
//清空缓存并返回sb里的数据
String var1 = sb.toString ();
sb.delete (0, sb.length ());
return var1;
} @Test
public void test() {
MyStringBuilder mySb = new MyStringBuilder ();
mySb.append ("aaa").append ("bbb").append ("ccc");
System.out.println ("mySb :" + mySb.toString ()); MyStringBuilder mySb2 = new MyStringBuilder ();
mySb2.append ("aaa2")
.append ("bbb2")
.append ("ccc2");
System.out.println ("mySb2 :" + mySb2.toString ()); //测试不能再多线程使用异常
new Thread (() -> {
mySb.append ("rr");
}).start ();
}
}
自定义StringBuilder类拼接非空字符串的更多相关文章
- C#--数组、字符与字符串--StringBuilder类、字符与字符串、字符及转义字符
C#--数组 字符与字符串--StringBuilder类 字符与字符串 字符及转义字符
- 字符串处理总结之二(C#StringBuilder类)
动态串StringBuilder 与String类相比,System.Text.StringBuilder类可以实现动态字符串.此外,动态的含义是指在修改字符串时,系统不需要创建新的对象,不会重复开辟 ...
- 关于JavaScript中0、空字符串、'0'是true还是false的总结
最近被问到关于js中空字符串是true还是false得问题,一时间没想起来,现在在chrome的console面板上输出代码测试一下. "" == false 结果是true ...
- Java学习笔记 02 String类、StringBuilder类、字符串格式化和正则表达式
一.String类一般字符串 声明字符串 >>String str 创建字符串 >>String(char a[])方法用于将一个字符数组创建为String对象 >> ...
- 动态字符串 Stringbuilder类
StringBuilder动态字符串 string 类型的修改会浪费资源,如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类, stringbuild ...
- java常用类与包装类--常用类字符串String类、StringBuffer类、Stringbuilder类
1.String类 1.1String类的概念和储存结构: (1)字符串是一个比较特殊的对象,可以使用new,也可以不使用new来创建字符串对象 String s1 = new String(&quo ...
- 解决CsvWriter:中文乱码、末尾行多一行空格(/r)、非第一列空字符串""显示null问题
一:主要内容 解决CsvWriter存csv,csv文件打开后中文乱码问题 解决CsvWriter存csv,csv文件最后一行总是多一行空行的问题 解决CsvWriter存csv,csv文件不是第一列 ...
- 数据结构和算法 – 4.字符串、 String 类和 StringBuilder 类
4.1.String类的应用 class String类应用 { static void Main(string[] args) { string astring = "Now is The ...
- linux环境判断字符串是否为非空
需求描述: 今天帮同事调整脚本,涉及到判断一个字符串为非空的,在此记录下. 操作过程: 通过-n来判断字符串是否为非空,如果为非空那么就是真 #!/bin/bash Str1='MyTest' if ...
随机推荐
- Centos7.5安装kafka集群
Tags: kafka Centos7.5安装kafka集群 Centos7.5安装kafka集群 主机环境 软件环境 主机规划 主机安装前准备 安装jdk1.8 安装zookeeper 安装kafk ...
- [00]APUE:GCC / GDB / Makefile
http://blog.csdn.net/haoel/article/category/9197 http://blog.csdn.net/haoel/article/details/2886 生成 ...
- spark-sql性能优化之——多线程实现多Job并发执行
直接上代码 val spark = SparkSession.builder() .appName("name") .master("local[2]") .g ...
- Dribbble 流行的配色风格是什么?
Dribbble 是众所周知的设计社群网站,在网站中有许多人分享设计作品,互相交流或从其他设计获取灵感.当然也有不少网站应运而生,例如 Freebbble 可免费下载 Dribbble 数千种设计素材 ...
- 3、docker 容器管理
Docker容器相对于OpenStack的云主机实例,虽然他们本质上不同.我们需要基于镜像来创建容器.容器是独立运行的一个或一组应用,以及它们的运行环境.对应的,虚拟机可以理解为模拟运行的一整套操作系 ...
- CSIC_716_20191108【文件的操作,以及彻底解决编码问题的方案】
关于编码的问题: 在平时编写代码,涉及到打开文件时,常常遇到字符编码的报错, 通过总结,得出以下规律 如果在操作过程中涉及到调用文本文档,一定要在文本文档开头申明编码方式(# coding:XXXX ...
- Buy Low, Buy Lower
Buy Low, Buy Lower 给出一个长度为N序列\(\{a_i\}\),询问最长的严格下降子序列,以及这样的序列的个数,\(1 <= N <= 5000\). 解 显然我们可以很 ...
- Java 集群高可用监控(结合阿里SLB)脚本
欢迎点评,大家一起来优化 计划思路: 只有在mysql slave java 进程状态都正常的情况下才允许nginx 运行, 否则就干掉它, 负载用的是阿里的SLB #bin/bash #邮件函数 ...
- Java 虚拟机 - ClassLoader
ClassLoader定义 ClassLoader种类 BootStrapClassLoader无法在IDEA里面查看源代码,只能看JVM 源码才能找到. ExtClassLoader,会从Syste ...
- 概率dp——hdu4089推公式+循环迭代
迭代是化简公式的常用技巧 dp[i][j]表示队伍中有i人,tomato排在第j位出现情况2的概率,那么先推出公式再进行简化 dp[i][1]=p21*dp[i][i] + p41 j<=k : ...