Java 13 字符串 String

220 阅读2分钟

1 . String 概述:

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

  • Java 程序中的所有字符串文字(例如 "abcs")都是此类的对象。
  • 字符串不可变,它们的值在创建后不能被改变
String name = "翔哥" ;
name = "小马哥" ;
// 此过程是重新创建了一个变量 name 并赋值为"小马哥"

2 . 创建String对象的两种方式:

0857.png

String s1 = new String("abc");  // "abc"

char[] chs = {'a','b','c'};
String s2 = new String(chs);    // "abc" // 需求:要更改字符串的内容

最后一种:通过字节数组创建:

0858.png

3 . String 内存分析

串池: 即储存字符串常量的地方

0859.png

3 . 1 双引号直接赋值:

当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在。 不存在: 创建新的 存在:复用

0860.png

3 . 2 new 方法创建:

new 一下,新创建一个

0861.png

4 . 字符串的比较

4 . 1 == 的比较:

  • == 对基本数据类型 ,比较的是具体的值。
  • == 对引用数据类型 ,比较的是所存的地址值。

0862.png

4 . 2 调用方法比较:

0863.png

String s1 = new String("abc");
String s2 = "abc";
boolean result = s1.equals(s2);

4 . 3 注意 :

  • 键盘录入的字符串底层实现是 new 出来的。

5 . 字符串常用方法

5 . 1 字符串的长度: str.length()

5 . 2 字符串指定下标值地获取: str.charAt(i)

5 . 3 字符串的遍历:

for(int i = 0 ; i < str.length() ; i++){
   char c = str.charAt(i);
   System.out.println(c);
}

5 . 4 字符串的截取: str.substring()

0864.png

5 . 5 字符串的拼接:StringBuilder()

  • 普通的直接 + 的字符串的拼接,效率是很慢的,因为每次拼接都是创建了一个新的字符串!!

  • StringBuilder()

0865.png

StringBuilder()构造方法:

0866.png

StringBuilder()常见方法:

0867.png

StringBuilder sb = new StringBuilder("abc");
sb.append(1);

注意:

  • sb.append()sb.reverse() 方法都是直接对StringBuilder里面存放的内容进行修改。

  • 如果打印 sb ,那么得到的不是地址值,而是里面的内容(Java封装好的)

可以很快的解决判断回文字符串的问题!!!!

0868.png

5 . 6 StringJoiner

0869.png

StringJoiner 构造方法:

0870.png

StringJoiner相关方法:

0871.png

6 . 总结

0872.png