String类

字符串特点

  1. 字符串的内容永不改变

  2. 因为字符串内容不变,故字符串是共享使用

  3. 字符串相当于是char[]字符数组,底层实现是byte[]字节数组

字符串的常量池

  • 从JDK1.7之后,字符串常量池在堆中

  • 字符串常量池中的字符串对象保存的是字节数组的地址

  • 对于直接双引号的,是在常量池中

  • 对于使用new关键字创建的字符串,会转换为字节数组,然后把地址给到new出来的字符串对象

字符串变量比较的是地址,字符串是常量,一旦需要改变,比如拼接,那是产生了一个新的字符串。注意,字符串内容是不会改变的,变量名存储的是字符串的地址,打印出来的是字符串内容。

字符串常用方法

  public boolean equals(Object obj);//参数可以是任何对象,只有参数是一个字符串并且内容相同的才会返回true,否则返回false,equals方法比较内容是否相同,格式:常量.equals(变量),因为变量写前面,如果变量的值为null,可能会出现空指针异常
  public int length();
  public String concat(Strng str);//将当前字符串和参数字符串拼接成为新的字符串并返回
  public charAt(int index);//获取指定索引位置的单个字符,索引从0开始
  public int indexOf(String str);//查找参数字符串在本字符串中首次出现的索引位置,若没有就返回-1
  public String substring(int index);//截取从参数位置一直到字符串末尾,返回新的字符串
  public String substring(int begin, int end);//截取从begin开始到end结束,左闭右开[begin, end)
  public char[] toCharArray();//将当前字符串拆分成为字符数组并返回
  public byte[] getBytes();//获得当前字符串底层的字节数组
  public String replace(CharSequence oldStr, CharSequence newStr);//将所有出现的旧字符串替换成为新的字符串,并返回替换后的新字符串
public String[] split(String regex);//按照参数规则,将字符串切分为若干部分,正则表达式,转义字符,后续补充
posted on 2020-12-23 19:08  LuckyJane  阅读(68)  评论(0)    收藏  举报