24 String、StringBuffer与StringBuilder快速上手

简介: 1.1🏃🏻 String类的构造器很多,常用的有:String st1 = new String();String st2 = new String(String orginal);String st3 = new String(char [] a );String st4 = new String(char [] a ,int starIndext,int count);String st5 = new String(byte [] a);

3.png


1 🚩String详解


1.1🏃🏻 String类的构造器很多,常用的有:


String st1 = new String();

String st2 = new String(String orginal);

String st3 = new String(char [] a );

String st4 = new String(char [] a ,int starIndext,int count);

String st5 = new String(byte [] a);


1.2🏃🏻 String有private final byte[] value;属性用于存放字符串


这里被final修饰说明value的地址不可修改,但是值可以替换;


1.3 🏃🏻String 常用方法


方法名 说明

String toUpperCase() 将小写字母转换为大写,返回值类型为String

String toLowerCase() 将大写字母转换为小写,返回值类型为String

char [] toCharArray() 将字符串换为字符数组,返回值类型为字符数组


2 🚩StringBuffer详解


💡概念:StringBuffer,是可变长度可对字符串进行增删的一个容器;

(1)直接父类是:AbstractStringBuilder

(2)实现了Serializable,说明StringBuffer也可以串行化;

(3)在父类AbstractStringBuilder中的属性 char[] 不是final

(4)StringBuffer也是一个final类,也就是说不能被继承


2.1🏃🏻 StringBuffer的构造器


①StringBuffer();

构造一个不带字符的,字符串缓冲区,初始容量为16个字符;

②StringBuffer(int capacity)

构造给不带字符的,但可以指定容量大小的字符串缓冲区

③StringBuffer(String str)

通过给一个String创建StringBuffer,char [] 大小等于,字符串.length +16;


2.2🏃🏻 String 与StringBuffer之间的转换;


(1) String =》 StringBuffer

①使用构造器【代码示例】:

public class StringBufferDemo {
    public static void main(String[] args) {
        StringBuffer buffer = new StringBuffer("这里是字符串对象");
    }
}

②使用StringBuffer中的append方法【代码示例】:

public class StringBufferDemo {
    public static void main(String[] args) {
        StringBuffer buffer = new StringBuffer();
        buffer = buffer.append("字符串对象");
    }
}

(2)StringBuffer =》String

①使用toString方法【代码示例】:

public class StringBufferDemo {
    public static void main(String[] args) {
        StringBuffer buffer = new StringBuffer();
//        字符串转StringBuffer
        buffer = buffer.append("字符串对象");
//        StringBuffer通过toString方法,转字符串
        String temp = buffer.toString();
    }
}

②使用String的构造器把StringBuffer转Sting【代码示例】:

public class StringBufferDemo {
    public static void main(String[] args) {
        StringBuffer buffer = new StringBuffer();
//        字符串转StringBuffer
        buffer = buffer.append("字符串对象");
//        StringBuffer通过toString方法,转字符串
        String temp = buffer.toString();
//        StringBuffer通过String构造器为转字符串
        String s = new String(buffer);
    }
}


2.3🏃🏻StringBuffer的常用方法


StringBuffer append(String str) 添加方法

StringBuffer delete(int star,int end) 删除 从star到end的字符【索引从0开始,包左不包右】

StringBuffer replace(int star,int end,String str); 替换 从star到end的字符【索引从0开始,包左不包右】

int indexOf(String str) 查找子串在字符串中第一次出现的索引,没找到返回-1

StringBuffer insert(int index,String str); 插 在指定的索引位置插入字符串

int length() 返回StringBuffer长度


3 🚩StringBuilder


【提要:】StringBuilder与StringBuffer的使用方法一样

1 如果字符串存在大量修改操作,一般使用StringBuffer或者StringBuilder

2 如果字符串存在大量修改操作,且单线程,使用StringBuilder

3 如果字符串存在大量修改操作,且多线程,使用StringBuffer

4 如果字符串很少修改,被多个对象引用,使用String,比如配置信息



目录
相关文章
|
27天前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
44 1
|
2天前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
1月前
|
安全 Java API
Java系类 之 String、StringBuffer和StringBuilder类的区别
这篇文章讨论了Java中`String`、`StringBuffer`和`StringBuilder`三个类的区别,其中`String`是不可变的,而`StringBuffer`是线程安全的可变字符串类,`StringBuilder`是非线程安全的可变字符串类,通常在单线程环境下性能更优。
Java系类 之 String、StringBuffer和StringBuilder类的区别
|
1月前
|
安全 Java
【Java基础面试二十七】、说一说StringBuffer和StringBuilder有什么区别
这篇文章介绍了Java中StringBuffer和StringBuilder的区别:StringBuffer是线程安全的,而StringBuilder是非线程安全的,因此在单线程环境下优先推荐使用StringBuilder以获得更好的性能。
|
1月前
|
安全
String,Stringbuffer,StringBuilder的区别
【8月更文挑战第16天】String,Stringbuffer,StringBuilder的区别
27 2
|
20天前
|
API C# 开发者
WPF图形绘制大师指南:GDI+与Direct2D完美融合,带你玩转高性能图形处理秘籍!
【8月更文挑战第31天】GDI+与Direct2D的结合为WPF图形绘制提供了强大的工具集。通过合理地使用这两种技术,开发者可以创造出性能优异且视觉效果丰富的WPF应用程序。在实际应用中,开发者应根据项目需求和技术背景,权衡利弊,选择最合适的技术方案。
33 0
|
1月前
|
缓存 安全 Java
【揭秘】String vs StringBuilder vs StringBuffer:三大字符串类的秘密较量!你真的知道何时该用哪个吗?
【8月更文挑战第19天】探讨Java中`String`、`StringBuilder`与`StringBuffer`的区别及应用场景。`String`不可变,适合做哈希表键或多线程共享。`StringBuilder`支持动态修改字符串,适用于单线程环境以提高性能。`StringBuffer`与`StringBuilder`功能相似,但线程安全。示例代码展示各类型的基本用法。选择哪种类型取决于具体需求和性能考量。
28 0
|
29天前
|
API 索引
String类下常用API
String类下常用API
32 1
|
29天前
for循环和String类下方法的一个练习题
for循环和String类下方法的一个练习题
42 1
|
6天前
|
存储 安全 Java
Java——String类详解
String 是 Java 中的一个类,用于表示字符串,属于引用数据类型。字符串可以通过多种方式定义,如直接赋值、创建对象、传入 char 或 byte 类型数组。直接赋值会将字符串存储在串池中,复用相同的字符串以节省内存。String 类提供了丰富的方法,如比较(equals() 和 compareTo())、查找(charAt() 和 indexOf())、转换(valueOf() 和 format())、拆分(split())和截取(substring())。此外,还介绍了 StringBuilder 和 StringJoiner 类,前者用于高效拼接字符串,后者用于按指定格式拼接字符串
11 1
Java——String类详解