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,比如配置信息



目录
相关文章
|
3天前
|
安全
String,Stringbuffer,StringBuilder的区别
【8月更文挑战第16天】String,Stringbuffer,StringBuilder的区别
10 2
|
1月前
|
安全 Java 索引
带你快速掌握Java中的String类和StringBuffer类(详解常用方法 | 区别 )
带你快速掌握Java中的String类和StringBuffer类(详解常用方法 | 区别 )
|
2月前
|
存储 缓存 Java
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
27 2
|
2月前
|
安全 Java API
JavaSE——常用API进阶一(3/3)-StringBuilder(构造器、拼接内容、反转操作、其他操作),StringBuffer,StringJoiner
JavaSE——常用API进阶一(3/3)-StringBuilder(构造器、拼接内容、反转操作、其他操作),StringBuffer,StringJoiner
27 1
|
2月前
|
安全 Java 测试技术
滚雪球学Java(50):理解Java中String、StringBuilder和StringBuffer的区别与选择
【6月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
25 0
滚雪球学Java(50):理解Java中String、StringBuilder和StringBuffer的区别与选择
|
2月前
|
安全
StringBuffer,StringBuilder的区别及其源码分析
StringBuffer,StringBuilder的区别及其源码分析
|
3月前
|
存储 安全 Java
【JAVA学习之路 | 提高篇】StringBuffer与StringBuilder
【JAVA学习之路 | 提高篇】StringBuffer与StringBuilder
|
2月前
|
Java UED
Java中String强转int:一种常见的错误和解决方法
在Java中将非数字字符串转换为整数会导致`NumberFormatException`。要解决这个问题,可以使用`try-catch`捕获异常,正则表达式验证数字格式,或利用异常信息提供错误提示。例如,`Integer.parseInt()`会因遇到非数字字符如`"123abc"`而抛出异常,但通过异常处理或正则`\\d+`可确保安全转换。记得在编程时避免直接强转,以防止程序异常中断。
|
4天前
|
前端开发 Java
成功解决:java.lang.String cannot be cast to java.lang.Integer
这篇文章记录了作者在使用Axios二次封装时遇到的一个Java类型转换问题,即前端传递的字符串参数不能直接转换为Integer类型,文章提供了正确的转换方法来解决这个问题。
成功解决:java.lang.String cannot be cast to java.lang.Integer
|
7天前
|
Java Android开发
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
25 1