20天jvava(9)

corejava day04 - 字符串类String,
StringBuffer类,
StringBuilder类,
正则表达式
2011/07/27
=====================================================
1.字符串类String
1)String类的定义:
Java字符串就是Unicode字符序列,
Java没有提供内置的字符串类型。
JavaAPI提供了类java.lang.String
用于操作字符串:
public final class String{...}
String 字符串 = char[] + 方法(toUpperCase(), charAt(),...)
2)String的字面量
String的字面量使用双引号的形式,
如:String str="abc";
String字面量也是String的实例,
Java利用字符串池在编译期优化来字符串字面量,
字面量赋值尽可能从池中获得。
如:"1"+"2"=="12"
new String("123"+"abc") 在运行时只产生了2个对象,在编译器优化为1个字面量
区分"1"+"hello"和new String("1"+"hello")
3)String类的构造方法
String():创建一个内容的字符串"",长度为0
String(String value):
通过String指定字符串的内容
String(char[] value):
通过char[]构造一个字符串
String(byte[] bytes):
通过byte[]构造一个字符串
String(byte[] bytes,
String charsetName):
按照指定的字符编码,由byte[]构造一个字符串
4)String类的常用方法:
boolean equals(String str):
判断两个字符串的内容是否相同
int length():返回字符串的字符个数
char charAt(int index):
返回字符串中index位置上的字符
int indexOf(char ch[,int fromIndex]):
在字符串中检索字符的位置,未找到返回-1
int indexOf(String str[,int fromIndex]):同上
int lastIndexOf(...):
从字符串的末尾开始检索
String substring(int beginIndex[,int endIndex]):
返回[beginIndex,endIndex)范围内的子串
String trim():去掉字符串前后的空白字符
String toUpperCase():转换为大写字符
String toLowerCase():转换为小写字符
boolean startsWith(String prefix[,int offset]):
是否以前缀prefix开始
boolean endsWith(String suffix):是否以后缀suffix结束
String concat(String str):
将字符串附加到当前字符串的末尾
String[] split(String regex):
依据参数regex将字符串分割到字符串数组中
String replace(char ch1,char ch2):将ch1替换成ch2
String replace(String str1,String str2):将str1替换成str2
String replaceAll(String regex,String replacement):
替换字符串中所有的regex
char[] toCharArray():将字符串转换为char[]
课堂练习:
a.输出一个字符串中一个字符的位置
b.输出字符串"100+200=300"中的操作数
5)String对象的不变性:
对象内容永远不变,
改变字符串内容总是生成一个的字符串对象

2.StringBuffer类
1)StringBuffer类用于缓存字符串,
提高了操作字符串的效率
2)构造方法:
StringBuffer():
建立一个新的新的缓存区,默认长度为16
StringBuffer(int length):
建立一个长度为length的缓冲区
StringBuffer(String str):
建立初始内容为str的缓存区,
并提供16个字符的空间供再次分配
3)StringBuffer类的常用方法
int length():返回缓冲区中字符的个数
int capacity():返回缓冲区的容量,即大小
StringBuffer类具有与String类相同的
length、charAt、indexOf、
lastIndexOf、substring方法
StringBuffer append(String str):
向缓冲区添加新的字符串
StringBuffer insert(int offset,String str):
在缓冲区offset位置插入字符串str
StringBuffer replace(int start,int end,String str):
替换字符串
3. StringBuilder类
StringBuffer 和 StringBuilder API几乎一样!
StringBuffer 是java早期提供的,速度稍慢,线程安全,优先使用
StringBuilder 是Java5 以后提供的,速度快,非线程安全

4.正则表达式
1) 基本语法
正则表达式用来描述特定的字符串模式,应用广泛
. 表示任意一个字符
[abc] 表示abc中的任意一个
[^abc] 表示abc以外的任意一个
[a-zA-Z] 介于a-zA-Z中的任意一个
\s 空白符
\S 非空白符
\d 数字[0-9]
\D 非数字[^0-9]
\w 单词[a-zA-Z0-9]
\W 非单词 [^a-zA-Z0-9]
{m,n} 数词
{n}
{m,n}
? : {0,1}
+ : {1,}
* : {0,}
^ 开头
$ 结尾
| 或者
2) 常用的正则表达式(邮编、身份证号、电子邮件、电话号码)
邮政编码: ^[0-9][0-9][0-9][0-9][0-9][0-9]$
^[0-9]{6}$
^\d{6}$

用户名规则: ^\w{8,10}$
电话号: +86 13912345678
^(\+86)?\s?\d{11}$
身份证号码: ^\d{15}(\d{2}[0-9xX])?$
一个点的坐标: ^\d+(,\s*|\s+)\d+$

日期: 2011-01-30
^\d{4}-\d{2}-\d{2}$
^\d{4}(-\d{2}){2}$

IP 地址: 192.168.0.2
^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$
^\d{1,3}(\.\d{1,3}){3}$
^(\d{1,3}\.){3}\d{1,3}$
3) String 相关API(split、matches、replace、replaceAll)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值