Java中String类简介

String

String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。

也就是说,java中所有的双引号字符串,都是String类的对象

一.字符串的特点

  • 字符串不可变,它们的值在创建之后不能被更改;
  • 虽然String的值是不可变的,但是它们可以被共享
  • 字符串的效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[])
  • 通过new创建的字符串对象,每一次new都会申请一块内存空间,虽然内容是相同的,但是地址值是不同的
  • 以""方式给出的字符串,只要字符序列相同(顺序和大小写完全相同),无论在程序代码中出现几次,JVM都只会创建一个String对象放置于堆内存的字符串常量池中

二.String构造方法

  1. public String()

    初始化一个新创建的 String 对象,使其表示一个空字符序列。注意,由于 String 是不可变的,所以无需使用此构造方法。

  2. public String(String original)

    初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。由于 String 是不可变的,所以无需使用此构造方法,除非需要 original 的显式副本。

    参数:
    original - 一个 String

  3. public String(char[] chs)

    根据字符数组的内容,来创建字符串对象

  4. public String(byte[] bys)

    根据字节数组的内容,来创建字符串对象

  5. public String(StringBuffer buffer)

    分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列。该字符串缓冲区的内容已被复制,后续对它的修改不会影响新创建的字符串。

  6. public String(StringBuilder builder)

    分配一个新的字符串,它包含字符串生成器参数中当前包含的字符序列。该字符串生成器的内容已被复制,后续对它的修改不会影响新创建的字符串。
    提供此构造方法是为了简化到 StringBuilder 的迁移。

三.字符串的比较

  1. 使用==做比较

    对于基本数据类型,比较的是数据值是否相等

    对于引用数据类型,比较的是地址值是否相同

  2. 字符串是对象,它比较内容是否相同,是通过一个equals方法实现的

    public boolean equals(Object anObject)

四.字符串常用方法

  1. public boolean equals(Object anObject)

    比较字符串的内容,严格区分大小写

  2. public boolean equalsIgnoreCase(String anotherString)

    将字符串与另一个字符串比较,不考虑大小写

  3. public char charAt(int index)

返回指定索引值处的字符,和数组一样从0开始

  1. public int length()

返回字符的长度

  1. public int codePointAt(int index)

    返回指定索引值处的字符(Unicode编码)

  2. public String concat(String str)

    将指定字符串连接到该字符串的结尾

  3. public byte[] getBytes()

    使用平台的默认字符集将此String编码为字节数组

  4. public int indexOf(int ch)

    返回指定字符在此字符串中第一次出现处的索引,查不到返回-1

  5. public int indexOf(int ch,int fromIndex)

    同上,从指定的索引开始开始查找

  6. public int indexOf(String str)

    返回指定子字符在此字符串中第一次处的索引

  7. public int indexOf(String str,int fromIndex)

    同上,从指定索引处开始查找

  8. public String replace(char oldChar,char newChar)

    返回一个新字符串,使用newChar替换所有oldChar

  9. public char[] toCharArray()

    返回一个字符数组

  10. public String toLowerCase()/toUpperCase()

    全部换成小写/大写

你可能感兴趣的:(javase)