处理字符串的常用方法

处理字符串的常用方法

01 String、StringBuffer、StringBuilder 三者之间的区别

复制代码
String 字符串常量

StringBuffer 字符串变量(线程安全)

StringBuilder 字符串变量(非线程安全)

String 中的 String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[] ,String 对象是不可变的,也就可以理解为常量,线程安全。

AbstractStringBuilder 是 StringBuilder 与 StringBuffer 的公共父类,定义了 一些字符串的基本操作,如 expandCapacity、append、insert、indexOf 等公共方法。

StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。

StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的。

小结:

(1)如果要操作少量的数据用 String;

(2)多线程操作字符串缓冲区下操作大量数据用 StringBuffer;

(3)单线程操作字符串缓冲区下操作大量数据用 StringBuilder。
复制代码

02 String字符串处理的基本方法:

复制代码
String concat(String str):对字符串进行拼接
boolean contains(String s):判断字符串中是否包含指定的内容。
boolean startsWith(String prefix):判断字符串是否以指定内容开头
boolean endsWith(String suffix):判断字符串是否以指定内容结尾。 int indexOf(String str) 在字符串中查找指定内容第一次出现的索引位置,如果没有找到,返回-1
int lastIndexOf(String str):在字符串中查找指定内容最后一次出现的索引,如果没有找到,返回-1 char[] toCharArray():将字符串转成一个字符数组并返回。 String toLowerCase():将字符串的内容全部转小写并返回。
String toUpperCase():将字符串的内容全部转大写并返回。 String trim():去除字符串的两边的空格,会将去除空格之后的结果返回给我们。 String[] split(String regex):对字符串根据指定内容进行切割,返回字符串数组
复制代码

03 StringBuilder的的常用api

构造方法

复制代码
创建 StringBuilder类的带有字符串“Hello”(长度为 5)的一个新实例

StringBuilder MyStringBuilder = new StringBuilder(“Hello World!”);

创建 StringBuilder类的带有字符串“Hello”(长度为 5)的一个新实例,同时可以指定该对象的最大容量为 25

StringBuilderMyStringBuilder = new StringBuilder(“Hello World!”, 25);

当修改 StringBuilder时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。
复制代码

 

基本方法

复制代码
append方法可用来将文本或对象的字符串表示形式添加到由当前 StringBuilder对象表示的字符串的结尾处

appendFormat方法将文本添加到 StringBuilder的结尾处,而且实现了 IFormattable接口,因此可接受格式化部分中描述的标准格式字符串。可以使用此方法来自定义变量的格式并将这些值追加到 StringBuilder的后面

.appendFormat("{0:C} ", MyInt);

insert方法将字符串或对象添加到当前 StringBuilder中的指定位置。以下示例使用此方法将一个单词插入到 StringBuilder的第六个位置。

可以使用 delete方法从当前 StringBuilder中移除指定数量的字符,移除过程从指定的从零开始的索引处开始。以下示例使用 Remove方法缩短 StringBuilder。

使用 replace方法,可以用另一个指定的字符来替换 StringBuilder对象内的字符。
复制代码

 

posted @   进击的小蔡鸟  阅读(503)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示