跳至主要內容

字符串

Yang大约 2 分钟JavaJava基础

  • String:具有不可变性
    • 对象一旦被创建,则不能修改,是不可变的
    • 所谓修改其实是创建了新的对象,所指向的内存空间不变
  • StringBuilder:可变,当频繁操作字符串时,建议使用
  • StringBuffer:和 StringBuilder 基本一致,StringBuffer 是线程安全的,StringBuilder 则没有,所以 StringBuilder 性能略高

创建方法

String str1 = "imooc";
String str2 = new String();
String str3 = new String("imooc");

char[] ch = {'i','m','o','o','c'};
String str4 = new String(ch);
String str5 = new String(ch,1,2);

常用方法

方法说明
int length()返回当前字符串的长度
int indexOf(int ch)查找 ch 字符在该字符串中第一次出现的位置
int indexOf(String str)查找 str 子字符串在该字符串中第一次出现的位置
int lastIndexOf(int ch)查找 ch 字符在该字符串中最后一次出现的位置
int lastIndexOf(String str)查找 str 子字符串在该字符串中最后一次出现的位置
String substring(int beginIndex)获取从 beginIndex 位置开始到结束的子字符串
String substring(int beginIndex, int endIndex)获取从 beginIndex 位置开始到 endIndex 位置的子字符串(不包括 endIndex 位置字符串)
String trim()返回去除了前后空格的字符串
boolean equals(Object obj)将该字符串与指定对象比较,返回 true 或 false
String toLowerCase()将字符串转换为小写
String toUpperCase()将字符串转换为大写
char charAt(int index)获取字符串中指定位置的字符
String[] split(String regex, int limit)将字符串分割为子字符串,返回字符串数组
byte[] getBytes()将该字符串转换为 byte 数组

equals== 的区别

  • equals 是判断两个变量或者实例指向同一个内存空间的值是不是相同
    • 常用于 String 类型数据比较
    • 两个对象是否在意义上相等
  • ==
    • 对于基本数据类型而言,== 比较的是变量里存储的值
    • 对于引用数据类型而言,== 比较的是对象的内存地址(String 为引用类型)
上次编辑于:
贡献者: sunzhenyang