一、目录

  • String类介绍
  • String类对象创建
  • String类对象特性
  • String类常见方法

二、String类介绍

  1. String对象用于保存字符串,也就是一组字符序列。
  2. 字符串常量对象是用双引号括起来的字符序列。例如:“hello”。
  3. 字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节。
  4. String类较为常用的构造方法
  • String s1 = new String();
  • String s2 = new String(String original);
  • String s3 = new String(char[] a);
  • String s4 = new String(char[] a, int startIndex, int count);
  1. String是final类,不能被其他类继承。
  2. String有属性 private final char value[]; 用于存放字符串内容。并且要注意,value是一个final类型,不可以修改。(指的是value的地址不可更改,里面的数据可以更改)
final char[] value = {'a', 'b', 'c'};
char[] v2 = {'t', 'o', 'm'};
value[0] = 'H';  //修改值是可以的
value = v2;     //修改地址就会报错

三、String类对象创建

  1. 方式一:直接赋值String s = “hello”;
  2. 方式二:调用构造器String s = new String(“hello”);

两种创建String对象的区别:

  1. 方式一:先从常量池查看是否有"hello"数据空间,如果有,直接指向;如果没有则重新创建,然后指向。s最终指向的是常量池的空间地址。
  2. 方式二:先在堆中创建空间,里面维护了value属性,指向常量池的hello空间。如果常量池没有hello,则重新创建,如果有,直接通过value指向。最终指向的是堆中的空间地址。

四、String类对象特性

  1. String是一个final类,代表不可变的字符序列。
  2. 字符串是不可变的。一个字符串对象一旦被分配,其内容是不可变的。

五、String类常见方法

String类是保存字符串常量的。每次更新都需要开辟空间,效率较低,因此java设计者还提供了StringBuilder和StringBuffer来增强String的功能,并提高效率。

  • equals:区分大小写,判断内容是否相等。
  • equalslgnoreCase:忽略大小写的判断内容是否相等。
  • length:获取字符的个数,也就是字符串的长度。
  • indexOf:获取字符在字符串中第一次出现的索引,如果找不到,返回-1。
  • lastIndexOf:获取字符在字符串中最后一次出现的索引,找不到返回-1。
  • substring:截取指定范围的子串。
  • trim:去前后空格。
  • charAt:获取某索引处的字符,注意不能使用Str[index]这种方式。
  • toUpperCase:转换成大写。
  • toLowerCase:转换成小写。
  • concat:连接字符串。
  • replace:替换字符串中的字符。
  • split:分割字符串,对于某些分割字符,我们需要转义。
  • compareTo:比较两个字符串的大小。
  • toCharArray:转换成字符数组。
  • format:格式化字符串。%s字符串 %c字符 %d整型 %0.2f浮点型