String及其常用API

@TOc

1.String是不可变对象

• java.lang.String使用了final修饰,不能被继承;
• 字符串底层封装了字符数组及针对字符数组的操作算法;
• 字符串一旦创建,对象永远无法改变,但字符串引用可以重新赋值;
• Java字符串在内存中采用Unicode编码方式,任何一个字符对应两个字节的定长编码。

2. String常量池

Java为了提高性能,静态字符串(字面量/常量/常量连接的结果)在常量池中创建,并尽量使用同一个对象,重用静态字符串;
对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果存在即返回该对象。

3.内存编码及长度

String在内存中采用Unicode编码,每个字符占用两个字节;任何一个字符(无论中文还是英文)都算1个字符长度,占用两个字节。

4.使用indexOf实现检索

• indexOf方法用于实现在字符串中检索另一个字符串
• Atring提供几个重载的indexOf方法
在这里插入图片描述
• String还定义有lastIndexOf方法:
在这里插入图片描述
在这里插入图片描述
使用substring获取子串
• substring方法用于返回一个字符串的子字符串。
• substring常用重载方法定义如下:
在这里插入图片描述
在这里插入图片描述
trim(查阅API)
在这里插入图片描述
charAt(查阅API)
在这里插入图片描述
在这里插入图片描述
startsWith和endsWith(查阅API)
在这里插入图片描述
大小写变换(查阅API)
在这里插入图片描述
valueOf(查阅API)
在这里插入图片描述

4. StringBuilder及其API

4.1 StringBuilder封装可变字符串

StringBuilder封装可变的字符串,对象创建后可以通过调用方法改变其封装的字符序列。
StringBuilder有如下常用构造方法:

4.2 StringBuilder常用方法

在这里插入图片描述
• StringBuilder的很多方法的返回值均为StringBuilder类型。这些方法的返回语句均为:return this。
• 由于改变封装的字符序列后又返回了该对象的引用。可以按照如下简洁的方式书写代码:

append方法(查阅API)
在这里插入图片描述
insert(查阅API)
在这里插入图片描述
delete(查阅API)
在这里插入图片描述

4.3 StringBuilder总结

• StringBuilder是可变字符串。字符串的内容计算,建议采用StringBuilder实现,这样性能会好一些;
• java的字符串连接的过程是利用StringBuilder实现的

• StringBuilder和StringBuffer
– StringBuffer是线程安全的,同步处理的,性能稍慢
– StringBuilder是非线程安全的,并发处理的,性能稍快

5 基本正则表达式

5.1 正则表达式简介

实际开发中,经常需要对字符串数据进行一些复杂的匹配、查找、替换等操作。通过“正则表达式”,可以方便的实现字符串的复杂操作。
正则表达式是一串特定字符,组成一个“规则字符串”,这个“规则字符串”是描述文本规则的工具。正则表达式就是记录文本规则的代码。
例如:
– 正则表达式:“[a-z]”表示a到z的任意一个字符
– 正则表达式:“[a-z]+”表示由1个货多个a-z字符组成的字符串
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
检索邮政编码:
– 规则为6位数字
– 第一种匹配规则 [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]
– 简化第一种规则 \d\d\d\d\d\d
– 简化第二种规则 \d{6}
在这里插入图片描述
“*”、“+”、“?”
在这里插入图片描述
{n}、{n, }、{n, m}
在这里插入图片描述
分组“()”
分组:()圆括号表示分组,可以将一系列正则表达式看做一个整体,分组时可以使用“|”表示“或”关系,例如:匹配手机号码前面的区号:(+86|0086)?\s?\d{11}
上述例子中,圆括号表示这里需要出现“+86”或者“0086”
检索手机号码:+86 13838389438
– +86 可有可无
– +86与后面的号码之间空格可以没有或者有多个
– 电话号码为11位数
在这里插入图片描述
“^”和“$”
边界匹配
– ^ 代表字符串开始
– $ 代表字符串结束
例如:匹配用户名规则 - 从头到尾连续8~10个单词字符
在这里插入图片描述
如果使用第一种写法,则“abcd1234_abcd”是可以验证通过的;
使用第二种写法由于有从头到尾整体的限定,则验证不能通过。

5.2 String正则API

matches方法
• matches(正则表达式)方法:将一个字符串与正则表达式进行匹配;如果匹配成功就返回true,否则返回false。
在这里插入图片描述
split方法
• String的split方法可以将字符串按照特定的分隔符拆分成字符串数组。

在这里插入图片描述
在这里插入图片描述
replaceAll方法
• String提供了用于字符串替换的方法:

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值