Skip to content
  • 字符串的内容是不发生更改的:==创建后不能更改==
  • Java中的 String 对象是不可变的。这意味着一旦一个 String 对象被创建,其内容就不能被改变。如果需要修改字符串,实际上是创建了一个新的 String 对象。

1.创建String对象的两种方式

1.直接赋值

java
String str = "abc";

2.new赋值

java
//空参构造,获取空白字符串对象
String str = new String();

//有参构造

//传递字符数组,根据字符数组内容再创建一个新的对象
//需求:修改字符串内容a--->Q
//abc--->{"a","b","c","d"}--->{"Q","b","c","d"}--->"Qbcd"
char[] chs = {"a","b","c","d"}
String str = new String(chs)//abcd

//传递一个字节数组,根据字节数组再创建一个字符串对象
//需求:网络数据传输是字节信息
//字节信息转换成字符串
byte[] bytes = {97,98,99,100}
String str = =new String(bytes)//abcd

2. 字符串池(String Pool):

字符串池是一个特殊的存储区域,在这里保存了所有字面量形式创建的字符串。 如果创建一个字符串字面量(如 String s = "hello";),JVM 首先检查字符串池中是否存在相同内容的字符串。 如果存在,则返回池中的字符串引用; 如果不存在,新的字符串被创建并放入池中。

3.比较

==号比较的是什么? 1.基本数据类型:==数据值== 2.引用数据类型:==地址值==(因为方法重写,Object方法是地址值)

字符串比较方法bollean equals完全一模一样 boolean equalsIgnoreCase忽视英文字母大小写 比较字符串内容优先调用String的方法

4.单个字符和字符长度

==public char charAt(int index)==:根据索引返回字符(从0索引开始) ==public int length()==:返回此字符串的长度 数组长度:数组名.length 字符串长度:字符串对象.length()<span style="font-size: 10; color: #888;">有括号是因为这里是一个无参数的方法</span>

5.截取

String substring(int beginIndex) String substring(int beginIndex ,int endIndex) 注意[int beginIndex ,int endIndex)包含了前面beginIndex,不包含后面的endIndex `:返回一个新的字符串,它是此字符串的一个子字符串。

-.charAt(int index)`:返回指定索引处的字符。

6.替换

String replace(旧值,新值) 只有返回值才是替换后的结果

7. 性能考虑:

  • 由于 String 是不可变的,每次修改字符串都会创建新的 String 对象,这可能影响性能。
  • 在进行频繁的字符串操作时,考虑使用 StringBuilderStringBuffer

1.StringBuilder(字符串拼接反转

tringBuilder 是 Java 中用于操作字符串的一个类,它允许你在不创建新的字符串对象的情况下,对字符串进行修改。相比较于直接使用字符串拼接的方式,StringBuilder 的效率更高,特别是在需要频繁修改字符串时。 ==构造方法== public StringBuilder(); public StringBuilder(String str);

==成员方法== public StringBuilder append(任意类型)——--->添加数据返回对象本身 public StringBuilder reverse()——————>反转容器中的内容 public int length()————>返回长度(字符串个数) public String toString()————>通过toString就可以把StringBuilder转换为String

2.StringJoiner

StringJoiner 是 Java 中用于拼接字符串的类,它在 Java 8 中引入。主要用于在构建复杂字符串时提供更灵活的方法。 ==构造方法== public StringJoiner(间隔符号)

  • 创建一个 StringJoiner 对象,使用指定的分隔符 public StringJoinerr(间隔符号,开始符号,结束符号)
  • 创建一个 StringJoiner 对象,使用指定的分隔符、前缀和后缀

===成员方法===

  1. add(CharSequence newElement)
    • 将指定的元素添加到 StringJoiner
  2. merge(StringJoiner other)
    • 将指定的 StringJoiner 对象的内容合并到当前对象中。
  3. length()
    • 返回当前字符串的长度(不包括分隔符)。
  4. setEmptyValue(CharSequence emptyValue)
    • 设置 StringJoiner 在没有元素时的默认输出值。
  5. toString()
    • 返回 StringJoiner 中所有元素的字符串表示形式。

8. 其他常用方法:

-.charAt(int index)`:返回指定索引处的字符。
- .contains(CharSequence s)`:检查此字符串是否包含指定的字符序列。
- .startsWith(String prefix)` 和 `.endsWith(String suffix)`:检查字符串是否以指定的前缀开始或以指定的后缀结束。

评论区

欢迎留言、补充或勘误。

xiaoba.blog