Java常用类-String

String

保存的是字符串常量,值不能被修改,每次更新都会重新开辟空间,创建对象、重新指向,效率较低。所以提供了StringBuilder和StringBuffer来增强String的功能。

private final char value[]

常用方法

	equalsIgnoreCase()//忽略大小写判断是否相等
    indexOf()//字符在字符串中第一次出现的索引,没有返回-1
	lastIndexOf()//
	charAt()//获取某索引处的字符
	subString()//按索引截取
    toUpperCase()//转换成大写
    replace()//将所有的前一个字符串替换成后一个字符串
    split()//以内部参数字符串为标准,对字符串进行分割,返回字符串数组
    compareTo()//比较时可区分大小,就返回字符的差值,故前者大返回整数
        //一字符串是另一字符串前面的部分,则返回字符串长度的差值
    format(formatStr, 参数)//占位符:%s-字符串替换,%d-整数,%.2f-保留小数点后两位的小数(并四舍五入),%c-字符
\\字符串在java中需要用"\\\\"表示

StringBuffer

是一个容器,是可变长度的。

是final类,不能被继承。

直接父类是AbstractStringBuilder。实现了Serializable,是可串行化的(可网络传输、保存到文件)

在父类中AbstractStringBuilder有属性char[] value数组存放字符串内容,因此存放在中,而不是String那样地址存放在堆中,内容在常量池。

保存的是字符串变量,不用每次都更新地址,只有数组空间大小不够才会更新,效率较高,线程安全。

1、初始容量为16字符,char[16]

2、也可构造器中指定大小

3、或构造器中传入字符串作为参数,长度为字符串length+16

//String -> StringBuffer
new StringBuffer(str)
//StringBuffer -> String
stringBuffer2.toString();
new String(stringBuffer2);

常用方法

append("努力").append(true)//追加
delete(11,14)//删除[11,14)的字符
replace(9,11,"哈哈")//[9,11)的字符替换
indexOf("卧槽")//第一次出现的索引,找不到返回-1
insert(9,"加油")//索引为9的前面插入
length()

StringBuilder

与StringBuffer类似,在大多数实现中,它比StringBuffer要快,主要操作是append和insert方法

,但是它的方法不是线程安全的(synchronized),没有做互斥处理,所以用在字符串缓冲区被单个线程使用的时候(单线程情况下使用)。

比较

String效率低(特别是循环、大量修改),复用率高(都指向常量池里的它,被多个对象引用)。

StringBuffer效率高(增删),线程安全。

StringBuilder效率最高,线程不安全。

posted @   上瘾了  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示