String类总结2

  1. StringBuffer类
    由于String类是由final修饰,每次更改一个字符串。都将消耗内存产生一个新的字符串对象。因此java提供了一个可变字符串。它就是StringBuffer,用来更改频繁的操作字符串。
    StringBuffer类的特性:
    (1)底层是可变序列
    (2)线程安全,但是效率慢
    StringBuffer类常用API
    (1)构造方法StringBuffer():构造一个没有字符串的缓冲区,初始容量为16个字符。
    (2)构造方法StringBuffer():构造一个初始化为指定字符串内容的字符缓冲区
    (3)普通方法append(String str):将参数str的字符串表示附加在序列中。
    StringBuffer buffer = new StringBuffer();
    buffer = buffer.append(“我是张三”);
    buffer.append(",年龄是18");
    System.out.println(buffer);//我是张三,年龄是18
    StringBuffer Ebuffer = new StringBuffer(“aaa”);
    Ebuffer.append(“bbb”).append(“ccc”);
    System.out.println(Ebuffer);//aaabbbccc
    (4)StringBuffer delete(int start, int end)
    :delete表示删除某一区间的内容
    区间[start,end)下表从零开始哦!
    StringBuffer buffer = new StringBuffer(“你好”);
    buffer.append(“我很喜欢学习java”).delete(0, 2);
    System.out.println(buffer.toString());//我很喜欢学习
    (5)
    StringBuffer insert(int offset, String str)
    :将字符串插入到此字符序列中。
    StringBuffer buffer = new StringBuffer();
    buffer.append(“我很喜欢学习java”).insert(1, “真的”);
    System.out.println(buffer.toString());//我真的很喜欢java
    下表从0开始从1的位置开始插入(原本1位置上的字符后移)
    (6)StringBuffer reverse()
    :该字符序列被序列的相反代替。
    (7)String substring()
    :截取字符串。

  2. 正则表达式及其应用
    (1)表达式介绍
    [ ]:任意一个字符——[abc]匹配的是abc中的任意一个字符
    [^]:任意一个非 的字符——[^abc]匹配的是非abc中的任意一个(不是abc中的任意一个字符)
    [0-9]:匹配任意一个0-9中的数字
    [a-z]:匹配任意一个a-z中的小写字符
    [A-Z]:匹配任意一个A-Z中的大写字符
    [0-9a-zA-Z]:匹配任意一个0-9或a-z或A-Z中任意一个字符
    [a-z&&[^ab]]:匹配a-z中的任意一个,ab除外(除ab外的任意一个)。
    [\u4e00-\u9fa5]:任意一个中文字符
    \d:任意一个数字字符
    \w:任意一个单词字符
    \s:任意一个空白字符
    \D:任意一个非数字字符
    \W:任意一个单词字符==[^0-9a-zA-z]
    \S:任意一个非空白字符
    数量的符号:
    *:前一项出现0次以上
    +:前一项出现1次以上
    ?:前一项出现0次或1次
    {m}:前一项出现m次
    {m,n}:前一项出现m到n次
    {m,}:前一项至少出现m次
    字符串对正则的支持方法:
    boolean matches(String regex) :告诉这个字符串是否匹配给定的 regular expression 。
    String[] split(String regex) :将此字符串分割为给定的 regular expression的匹配。
    String replaceAll(String regex, String replacement) :用给定的替换与给定的regular expression匹配的此字符串的每个子字符串。

    分组符号
    ():将某一个看出一项,当成一组来判断次数
    小括号内可以使用|进行选择

    ():分组
    	86+
    	(86)+
    |:或  13|15|16
    

    注:有些特殊字符在正则表达式中有特殊含义,如果我们想要注:保持该字符原有的含义则需要转移,转移使用""
    (2)正则表达式的应用
    String reg = “[abc]”;
    String str = “a”;
    boolean b = str.matches(reg);
    System.out.println(b);//true

String reg = “[^abc]”;
String str = “1”;
boolean b = str.matches(reg);
System.out.println(b);\true

String reg = “[0-9]”;
String str = “8”;
boolean b = str.matches(reg);
System.out.println(b);\true

//中文的正则表达式 [\u4e00-\u9fa5]
String reg = “[0-9a-zA-Z]”;
String str = “中”;
boolean b = str.matches(reg);
System.out.println(b);//false

邮编的验证方式
6位数字
1)[0-9][0-9][0-9][0-9][0-9][0-9]
2)[0-9]{6}

public class RegExpDemo2 {

	public static void main(String[] args) {
		/*String reg = "[0-9]{6}";*/
		String reg = "\\d{6}";
		System.out.println("请输入邮编格式:");
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		boolean b = str.matches(reg);
		if (b){
			System.out.println("邮编格式正确");
		}else {
			System.out.println("邮编格式错误");
		}
	}
}

/**

  • 电话号码
  • +86 – 可有可无
  • +86后面可以有0个或多个空白字符
  • 13,14,15,17,18
  • 9个数字
  • @author WIN

*/

public class RegExpDemo4 {

	public static void main(String[] args) {
		String reg = "(\\+86)?[0-9]{11}";
		String phone = "+8615543006648"; //"15543006648";
		System.out.println(phone.matches(reg));
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值