字符串的基本操作

String及常见API

String是不可变对象

  • Java定义String对象为不可变对象,一旦在内存中创建,内容不能发生改变,若要对字符串改变,那么就会创建新的对象。这样做的目的是可以最大程度上重用相同内容的字符串以减少系统资源开销。

String常量池

  • 给一个字符串做初始化时,JVM首先会从字符串的常量池中查询用来保存该字符串的对象是否已经存在,若存在直接引用,若不存在则创建该字符串的对象并存入常量池,然后引用它

内存编码及长度

  • Java存储每一个字符均使用两个字节,都是使用的是 Unicode编码,并且任何一个字符(无论是中文还是英文)每个字符的长度都是1,所以字符串的长度就是该字符串所有的字符个数
  • int length(); 返回当前字符串的长度

使用 indexOf实现检索

  • int indexOf(int ch)

    用来检索给定的一个字符在当前字符串中第一次出现的下标位置

使用 subString 获取字符串

  • String subString(int begin, int end)

    用来截取当前字符部分内容以获取这个子字符串。begin代表从哪里开始,end代表是从哪里结束(含头不含尾)

trim

  • String trim()

    将字符串两边的空白去掉

charAt

  • char charAt(int index)

    用于给定一个下标位置,来获取该字符串中这个位置的字符串

startsWith 和 endsWith

  • boolean startWith(String suffix)

    用来判断当前字符串是否是以给定的字符串开始的

  • boolean endsWith(String suffix)

    用来判断当前字符串是否是以给定的字符串结尾的

大小写转换

  • String toUpperCase()

    用来将当前字符串中的英文部分全部转换为大写

  • String toLowerCase()

    用来将当前字符串中的英文部分全部转换为小写

valueOf

  • 字符串提供了很多重载的valueOf方法,可以将其他基本类型的值以字符串形式描述

  • static String valueOf(int i) 返回int参数的字符串表示形式

StringBuilder封装可变字符串

  • 该类封装了可变的字符串,当我们需要改变字符串内容时,并不会和创建新的对象,而是在原有的基础上修改,从而减少了内存开销
  • 常用方法:
    1. append(String Str); —> 追加字符串
    2. insert(int disOffset, String s); --> 插入字符串
    3. delete(int start, int end); —> 删除字符串
    4. replace(int start, int end, String str)

StringBuffer

  • StringBuilder是可变字符串,StringBuffer也是可变字符串
  • 区别
    1. StringBuffer是线程安全,同步处理的,性能稍慢
    2. StringBuilder是非线程安全的,并发处理的,性能稍快

 


❤️  END ❤️
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐