字符串

A.介绍:
1.String是java定义好的一个类。定义在java.lang包中,所以使用的时候不需要导包。

2.java程序中的所有字符串文字(eg.“adsf”)都被视为此类的对象

3.字符串不可变,他们的值在创建后不能被更改

B.创建String的两种方式:
https://img2024.cnblogs.com/blog/3659684/202508/3659684-20250829234725088-228817948.png

传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象.
需求:我要修改字符串内容
char[] chs = {'a','b','c','d'};
String s4 = new String(chs);
soutp(s4) >>>>abcd

传递一个字节数组,根据字节数组的内容再创建一个新的字符串对象.
应用场景:以后在网络当中传输的数据其实都是字节信息。我们一般要把字节信息进行转换,转换成字符串,需要用到这个。
byte[] bytes = {97,98,99,100};
byte s5 = new String(bytes);
soutp(s5) >>>>abcd------(把数字对应到ASCII表里)

C.java的内存模型:
https://img2024.cnblogs.com/blog/3659684/202508/3659684-20250829235038854-1309737997.png

D.java常用方法(比较)(==)
https://img2024.cnblogs.com/blog/3659684/202509/3659684-20250901214959631-1511399186.png
new出来的是在堆里,直接赋值是在串池里面的
https://img2024.cnblogs.com/blog/3659684/202509/3659684-20250901215159546-94435289.png

基本数据类型:比的是数据值
引用数据类型:比的是地址值

E.字符串比较(比较内容)
https://img2024.cnblogs.com/blog/3659684/202509/3659684-20250901215944027-839216742.png
M1: boolean res1 = s1.equals(s2);
M2: boolean res1 = s1.equalsIgnoreCase(s2);

F. 遍历字符串
https://img2024.cnblogs.com/blog/3659684/202509/3659684-20250908154847706-1920690429.png
char在比较的时候会自动转换成int,对应到ascll表中

G. 截取字符串
对字符串本身没有影响,返回值才是截取的字符串
https://img2024.cnblogs.com/blog/3659684/202509/3659684-20250911213645773-690556391.png

H. Stringbuilder
它可以堪称是一个容器,创建之后里面的内容是可变的
https://img2024.cnblogs.com/blog/3659684/202510/3659684-20251013072558912-198272422.png

Stringbuider常用方法
https://img2024.cnblogs.com/blog/3659684/202510/3659684-20251013072726047-1479919752.png
https://img2024.cnblogs.com/blog/3659684/202510/3659684-20251013081452408-279166902.png

StringBuilder是java已经写好的类,java在底层对它做一些特殊处理,打印对象不是地址值而是属性值

链式编程:
sb.append("aaa").append("bbb").append("ccc")

使用场景:
1.字符串的拼接
2.字符串的反转

StringJoiner
和stringbuilder一样,也可以看成一个容器,创建之后里面的内容是可变的。
作用:提高字符串的操作效率,而且代码编写特别简洁(https://img2024.cnblogs.com/blog/3659684/202510/3659684-20251030130222047-1010790895.png =763x326)

构造/使用方法:
https://img2024.cnblogs.com/blog/3659684/202510/3659684-20251030130513856-143119614.png =666x315截屏2025-10-29 22.06.01

example:
https://img2024.cnblogs.com/blog/3659684/202510/3659684-20251030131157322-2125308415.png =714x479

总结 String/Stringbuilder/Stringjoiner

  1. string: 表示字符串的类,定义了很多操作字符串的方法
  2. Stringbuilder:一个可变的操作字符串的容器。可以高效的拼接字符串,还可以将容器里面的内容反转
    3.Stringjoiner:一个可变的操作字符串的容器。可以高效的拼接字符串。
posted @ 2025-08-29 23:51  junewang35  阅读(4)  评论(0)    收藏  举报