Java StringBuilder
来源:互联网 发布:洛奇英雄传n卡设置优化 编辑:程序博客网 时间:2024/06/03 21:26
一、StringBuilder
在Java中,除了可以使用 String 类来存储字符串,还可以使用 StringBuilder 类或 StringBuffer 类存储字符串。当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。
看下文档解释:(截取部分)
StringBuffer: String buffers are safe for use by multiple threads.StringBuilder: This class provides an API compatible with {@code StringBuffer}, but with no guarantee of synchronization.This class is designed for use as a drop-in replacement for{@code StringBuffer} in places where the string buffer was being used by a single thread (as is generally the case).
StringBuilder 和 StringBuffer 的异同:
1、同 :都是可变字符串
2、异 : StringBuilder 没有实现线程安全,效率比StringBuffer高,一般放于单线程操作
StringBuffer 实现了线程安全,可用于多线程中
因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。
二、StringBuilder 常用的API (演示按顺序执行)
1、创建并初始化一个可变字符串
StringBuilder string = new StringBuilder("Java");System.out.println("最初是string:"+string);//最初是string:Java
2、往 string 后追加内容 ,内容为子字符串
string.append(" I coming ");System.out.println("追加后的string:"+string);//追加后的string:Java I coming
3、追加 内容除了字符串以外,还可以是基本数据类型
string.append(true);System.out.println("往string后拼接一个布尔类型:"+string);//往string后拼接一个布尔类型:Java I coming truestring.append(5);System.out.println("往string后拼接一个整型变量:"+string);// 往string后拼接一个整型变量:Java I coming true5
备注 : 往 StringBuilder 类型的对象 末尾拼接内容 并不局限于 字符串类型,同样,插入操作 也是一样的 . 也就是说,使用append或者insert方法,都可以追加或插入任何类型的数据 !!
4、插入内容到指定位置
string.insert(0, "Hello,");System.out.println("插入内容的string:"+string);//插入内容的string:Hello,Java I coming true5
5、获取 长度
int stringLength = string.length();System.out.println("字符串的长度:"+stringLength);// 字符串的长度:25
6、指定位置删除
string.deleteCharAt(0);System.out.println("删除第1个字符后字符串为:"+string);// 删除第1个字符后字符串为:ello,Java I coming true5
7、指定范围删除 【start end)
string.delete(0, 2);System.out.println("指定范围删除后的字符串:"+string);// 指定范围删除后的字符串:lo,Java I coming true5
8、 指定范围替换 【start end);
string.replace(0, 2, "he");System.out.println("替换后的字符串为:"+string);// 替换后的字符串为:he,Java I coming true5
9、获取指定位置的字符
char firstChar = string.charAt(0);System.out.println("string的第一个字符是:"+firstChar);// string的第一个字符是:h
10、 判断 “a” 在string 第一次出现的位置,不存在返回-1,存在返回对应下标值
int firstShowIndex = string.indexOf("a");System.out.println("a在string第一次出现的位置:"+firstShowIndex);//a在string第一次出现的位置:4
11、判断 “a”在string 最后一次出现的位置,不存在返回-1,存在返回对应下标值
int lastShowIndex = string.lastIndexOf("k");System.out.println("a在string最后一次出现的位置:"+lastShowIndex);// a在string最后一次出现的位置:-1
12、反转
string.reverse();System.out.println("反转后的字符串:"+string);// 反转后的字符串:5eurt gnimoc I avaJ,eh
13、可变字符串 转化成 不可变字符串
String newString = string.toString();System.out.println("StringBuilder类型 对象转化成 String类型:"+newString);// StringBuilder类型 对象转化成 String类型:5eurt gnimoc I avaJ,eh
demo地址
这里要注意一个细节: 在String类中,可以使用”+”来链接字符串,但是在可变字符串只能使用append()来连接字符串
- java--StringBuilder
- Java StringBuilder
- java-StringBuilder
- Java StringBuilder
- java StringBuilder
- Java的StringBuilder类
- JAVA基础之StringBuilder
- Java.StringBuffer-StringBuilder
- Java StringBuilder 的使用
- Java String,StringBuilder,StringBuffer
- JAVA String StringBuffer Stringbuilder
- java中StringBuilder类
- Java String\StringBuffer\Stringbuilder
- Java优化-StringBuilder类
- Java StringBuffer和StringBuilder
- Java String StringBuilder StringBuffer
- Java String StringBuilder StringBuffer
- Java String StringBuilder StringBuffer
- github release 功能的使用及问题解决
- jqPaginator到最后一页不显示页数
- 操作系统概念(高等教育出版社,第七版)复习——第十二章:大容量存储器的结构
- CentOS7使用yum安装nginx
- document.ready和window.onload的区别
- Java StringBuilder
- ip(点分十进制 <==> 二进制整数)之间的转换
- Hibernate的二级缓存和查询缓存
- LeetCode动态规划
- MC9S12XEP100 SCI(UART)驱动程序
- Unity Learning for Day 20
- FPGA编程注意事项
- char与signed char, unsigned char的区别
- 415Add Strings