Java字符串(String_StringBuilder_StringBuffer)

简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/54015446 String类不可变字符序列 String类中使用字符数组保存字符串,但是字符数组是用final修饰的。
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/54015446

String类

不可变字符序列

 String类中使用字符数组保存字符串,但是字符数组是用final修饰的。不可变

   private final char value[];

构造方法:
String() 初始化一个新创建的 String 对象,使其表示一个空字符序列。
String(byte[] bytes) 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
String(byte[] bytes, Charset charset) 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。

方法
indexOf(char ch) 返回指定字符在此字符串中第一次出现处的索引
charAt(int index) 返回指定索引处的 char 值
lastIndexof() 返回指定字符在此字符串中最后一次出现处的索引。
startWith() 测试此字符串是否以指定的前缀开始。
endsWith()测试此字符串是否以指定的后缀结束
subString() 返回一个新的字符串,它是此字符串的一个子字符串。
split()根据给定正则表达式的匹配拆分此字符串。
toLowerCase()转换为小写,返回新字符串
toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写
equalsIgnoreCase()将此 String 与另一个 String 比较,不考虑大小写。

StringBuilder类

可变字符序列
线程不安全,效率高

构造函数:
StringBuilder() 构造一个其中不带字符的字符串生成器,初始容量为 16 个字符。
StringBuilder(int capacity) 构造一个其中不带字符的字符串生成器,初始容量由 capacity 参数指定。
StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容。

方法:
append(char c) 追加
delete(int start, int end) 删除start ~ end-1字符
deleteCharAt(int index)
ensureCapacity(int minimumCapacity) 确保容量大于minimumCapacity
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 把srcBegin~srcEnd复制到dst的dstBegin位置处
indexOf(String str) 返回str第一次出现的位置
insert(int offset, char c) 插入
replace(int start, int end, String str) 把start~end替换为str
reverse() 逆置

StringBuffer类

线程安全,效率低,与StringBuilter基本一样,他们都继承于抽象类AbstractStringBuilder。StringBuffer中的函数大部分是synchronize同步的,所以执行时会受其他线程的影响。效率会降低。
所以,如果程序用不到多线程,那么使用StringBuilder更高效。

目录
打赏
0
0
0
0
1
分享
相关文章
鸿蒙开发:ArkTs字符串string
字符串类型是开发中非常重要的一个数据类型,除了上述的方法概述之外,还有String对象,正则等其他的用处,我们放到以后得篇章中讲述。
77 19
Java 字符串详解
本文介绍了 Java 中的三种字符串类型:String、StringBuffer 和 StringBuilder,详细讲解了它们的区别与使用场景。String 是不可变的字符串常量,线程安全但操作效率较低;StringBuffer 是可变的字符串缓冲区,线程安全但性能稍逊;StringBuilder 同样是可变的字符串缓冲区,但非线程安全,性能更高。文章还列举了三者的常用方法,并总结了它们在不同环境下的适用情况及执行速度对比。
53 17
Java字符串缓冲区
字符串缓冲区是用于处理可变字符串的容器,Java中提供了`StringBuffer`和`StringBuilder`两种实现。由于`String`类不可变,当需要频繁修改字符串时,使用缓冲区更高效。`StringBuffer`是一个线程安全的容器,支持动态扩展、任意类型数据转为字符串存储,并提供多种操作方法(如`append`、`insert`、`delete`等)。通过这些方法,可以方便地对字符串进行添加、插入、删除等操作,最终将结果转换为字符串。示例代码展示了如何创建缓冲区对象并调用相关方法完成字符串操作。
44 13
|
22天前
|
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
47 11
|
28天前
|
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、"+"操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
|
5月前
|
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
183 83
课时16:String字符串
课时16介绍了Java中的String字符串。在Java中,字符串使用`String`类表示,并用双引号定义。例如:`String str = "Hello world!";`。字符串支持使用“+”进行连接操作,如`str += "world";`。需要注意的是,当“+”用于字符串与其他数据类型时,其他类型会先转换为字符串再进行连接。此外,字符串中可以使用转义字符(如`\t`、`\n`)进行特殊字符的处理。掌握这些基本概念对Java编程至关重要。
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
Java 中的 String Pool 简介
java 为什么 String 在 java 中是不可变的?
本文探讨了Java中String为何设计为不可变类型,从字符串池的高效利用、哈希码缓存、支持其他对象的安全使用、增强安全性以及线程安全等方面阐述了不可变性的优势。文中还通过具体代码示例解释了这些优点的实际应用。
java 为什么 String 在 java 中是不可变的?
|
5月前
|
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
93 26

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等