零、Java中关于字符串的基本操作

一、String

1 String的两种实例化方式

1.1 字面量定义

String s = "javaEE";
  • 通过字面量定义的方式所声明的字符串,都会定义在方法区中的字符串常量池中,变量s直接保存常量池中字符串常量的地址值。

1.2 通过new + 构造器

String s = new String("javaEE");
  • 通过new + 构造器方式所声明的字符串,会在堆和常量池中都创建对象,变量s中保存堆中变量的地址值,堆中的变量保存常量池中字符串常量的地址值。

2. String类的细节阐述

  • String声明为final的,不可被继承。
  • String实现了Serializable接口,表示字符串是支持序列化的;实现了Compareable接口,表示String可以比较大小。
  • String内部定义了final char[] value用于存储字符串数据
  • String代表不可变的字符序列,简称:不可变性
    1. 当对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的value进行赋值。
    2. 当对现有的字符串进行连接操作时,也需要重写指定内存区域赋值,不能使用原有的value进行赋值。
    3. 当调用String的replace()方法修改指定字符或字符串时,也需要重写指定内存区域赋值,不能使用原有的value进行赋值。
  • 字符串的拼接
    1. 常量与常量的拼接结果在常量池,且常量池中不会存在相同内容的常量。
    2. 只要有其中一个是变量,结果就在堆中。
    3. 如果拼接的结果调用intern()方法,返回值就在常量池中。

3. String的常用操作

3.1 字符串的长度

int length();//返回字符串的长度,返回值为int类型

3.2 得到索引处的字符

char charAt(int index);返回字符串索引处的字符,返回值为char类型

3.3 判断是否为空

boolean isEmpty();//返回字符串是否为空字符串,底层判断value数组元素个数是否为0

3.4 比较字符串内容

boolean equals(Object obj);//比较两个字符串内容是否相同

3.5 获取字符串的子串

String substring(int beginIndex, int endIndex);
//返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串

3.6 切分字符串为数组

String[] split(String regex);返回一个数组,根据给定正则表达式的匹配拆分此字符串。

二、StringBuffer

1. StringBuffer的实例化方式

StringBuffer stringBuffer = new StringBuffer("javaEE");

2. 细节阐述

  • StringBuffer:可变字符序列;线程安全的的,效率低;底层用char[]存储

3. 常用操作

3.1 增加

append(xxx);//在字符串尾部增加元素

3.2 删除

delete(int start, int end);//删除索引从start到end的元素,不包含end

3.3 修改

setCharAt(int n , char ch);/replace(int start, int end, String str);

3.4 查询

charAt(int n);

3.5 插入

insert(int offset, xxx)//在offset索引处,插入xxx

3.6 长度

int length();

3.7 反转

StringBuffer.reverse();

三、StringBuilder

  • StringBuilder的操作方法和StringBuffer一样,两者唯一的区别就是,StringBuffer是线程不安全的,效率高。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值