源码研读

本文深入解析Java中String类的功能与实现细节,包括数组复制、长度判断、字符串比较、子串截取、字符替换等核心操作,以及toString、删除、插入等方法的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组复制函数Arrays.copyOf():

其中参数original是要被复制的字符数组,newLength是要复制的长度,也是新数组的长度。函数返回复制完的新数组。

length()函数,返回的是字符数组value的长度。

判空isEmpty() 函数,字符数组长度是否为0

重写的 equals函数

首先判断是否为同一个对象,若不是,再判断是否是String对象,强制转为String类型后,判断两个String对象的value数组是否长度相同,接下来对两个value字符数组的内容从0开始向后比较。即equal()为真的情况是: 两个对象相同;都是String对象且value字符数组内容相同。

compareTo() 函数:

即在均存在字符的情况下,返回第一个不相同字符之差,前lim个字符相同(即长字符串的前lim个恰好是短字符串)则返回两个字符串长度之差。

substring 函数:

substring(int)

该函数返回从给定参数位置起到字符串结束的新字符串。如果给定从0开始,则返回原本的String对象,否则返回一个新的String对象。

substring(int, int):

如果要获取的子串是从0到最后,则返回原本的String对象,否则返回一个新的String对象。

字符替换 replace(char, char);

函数先判断替换字符和被替换字符是否相同,若相同则返回原String对象,不同则先找到要替换的字符位置,接下来创建一个新的字符数组,将保存替换后的字符串,最后返回一个新的String对象。

toString函数

因为已经是String对象,所以返回自身。

删除函数:deleteCharAt(int)

删除索引为index处的字符。通过调用数组复制函数来完成,将索引后面的内容依次复制到从索引开始的位置上,即通过覆盖的原理完成,更新count。

插入函数insert(int, char)

将字符c 插入到索引offset位置上,首先确保value数组容量足够,然后通过数组复制,将索引位置开始全部向后移一位,再将索引位置赋值c,更新count。

返回一个新创建的String对象,内容为value保存的字符。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值