文章目录
- 前言:
- 1、字符串概念
- 2、String类的特点
- 3、字符串的定义
- 3.1、直接定义字符串
- 3.2、使用 String 类定义
- 3.3、两种方式的区别
- 4、字符串的比较
- 4.1、== 号的作用
- 4.2、equals方法的作用
- 5、StringBuilder
- 5.1、StringBuilder简介
- 5.2、常用构造方法
- 5.3、StringBuilder对象的常用方法
- 6、StringJoiner
前言:
还在学习走的过程中
水平有限,不足之处望请斧正。
1、字符串概念
String 类代表字符串,字符串是Java中特殊的类,使用方法像一般的基本数据类型,被广泛应用在 Java 编程中。在 Java 中定义一个字符串最简单的方法是用双引号把它包围起来。这种用双引号括起来的一串字符实际上都是 String 对象,如字符串“Hello”在编译后即成为 String 对象。
2、String类的特点
- 字符串不可变,它们的值在创建后不能被更改
- 虽然 String 的值是不可变的,但是它们可以被共享
- 字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )
3、字符串的定义
3.1、直接定义字符串
直接定义字符串是指使用双引号表示字符串中的内容
例如:
String str = "hello world";
注意:字符串变量必须经过初始化才能使用。
3.2、使用 String 类定义
方法一:
String str = new String() ; //创建一个空字符串 str == null
方法二:
String str1 = new String ("Hello"); // str1 == Hello
String str2 = new String (str1); // str1 和 str2 的值是相同的
方法三:
//将字符数组中的元素变为字符串
char [] arr = { 'a', 'b' ,'c','d'};
String str = new String (arr); //str 的值为 abcd
方法四:
//根据字节数组来创建字符串
byte [] bts = {97,98,99};
String str = new String (bts) ; //str的值为 abc
3.3、两种方式的区别
直接赋值:在程序中对于相同的字符串无论出现多少次,在内存中都只存在一个
String类:通过new 创建字符串,即使内容相同,每new 一次都会重新申请一个内存空间
//直接赋值
String str1 = "abcd";
String str2 = "abcd" //由于str1 和str2 的内容相同且采用直接赋值的方法 ,故在内存中只有一个 "abcd"
//通过String 类构造
String str3 = new String ("abcd");
String str4 = new String ("abcd") ; // 由于 Str3 和 Str4 采用构造方法生成,故即使内容相同,在内存中仍然会创建两次
4、字符串的比较
4.1、== 号的作用
- 基本数据类型:比较具体的值
- 引用数据类型:比较的是地址值
4.2、equals方法的作用
public boolean equals(String s) 比较两个字符串内容是否相同、区分大小写
public boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。
5、StringBuilder
5.1、StringBuilder简介
一个可变的字符序列,StringBuilder 可以看成是一个容器,创建之后里面的内容是可变的。
当我们在拼接字符串和反转字符串的时候会使用到
5.2、常用构造方法
1. StringBuilder() //构造一个空的对象
StringBuilder builder = new StringBuilder();
2. StringBuilder(String str) // 构造一个字符串生成器,并初始化为指定的字符串内容。
StringBuilder builder = new StringBuilder("abc");
3. StringBuilder(int capacity) //构造一个其中不带字符的字符串生成器,初始容量由 capacity 参数指定。
StringBuilder builder = new StringBuilder(初始长度);
注意:
StringBuilder的对象创建时没有指定长度,StringBuilder对象会自动生成一个16位的字符数组
只要字符串生成器所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区。如果内部缓冲区溢出,则此容量自动增大。
StringBuilder 只是一个容器本身并不是字符串类型
可以通过 toString()方法变回字符串
5.3、StringBuilder对象的常用方法
StringBuilder sb = new StringBuilder();
// sb.append() 作用:追加数据
sb.append("1234");
// sb.insert() 作用:向指定位置插入数据
sb.insert( 0 , "5"); // 每次加入新的字符串之后都会改变原来字符串中每个字符的地址 ,插入后原来的数据后移
//sb.reverse() 作用:将对象中的数据反转
sb.reverse(); // sb的内容从 51234 变为 43215
6、StringJoiner
- StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的。
- 作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用。
- JDK8出现的
基本使用
1.构造方法
public StringJoiner(间隔符号) // 创建一个StringJoiner对象 ,并指定拼接时的间隔符号
// 创建一个StringJoiner 对象,并指定拼接时的间隔符号,开始符号,结束符号
public StringJoiner (间隔符号 ,开始符号 ,结束符号 )
public StringJoiner add(添加的内容) //添加数据,并返回对象本身
public int length() //返回长度(字符出现的个数)
public String toString() //返回一个字符串(拼接之后的结果)
今天的分享就到这里了,期待与你共同进步!
如有不足欢迎留言指正 !