Java中的正则表达式和字符串生成器

1、正则表达式

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。正则表达式是含有一些具有特殊含义字符的字符串,这些特殊字符称为正则表达式的元字符。

正则表达式中的元字符
元字符正则表达式中的写法意义
..代表任意一个字符
\d\\d代表0-9的任意一个数字
\D\\D代表任何一个非数字字符
\s\\s代表空白字符,如‘\t’、'\n'
\S\\S代表非空白字符
\w\\w代表可用作标识符的字符,但不包括'$'
\W\\W代表不可用于标识符的字符
\p{Lower}\\p{Lower}代表小写字母a-z
\p{Upper}\\p{Upper}代表大写字母A-Z
\p{ASCII}\\p{ASCII}ASCII字符
\p{Alpha}\\p{Alpha}字母字符
\p{Digit}\\p{Digit}十进制数字,0-9
\p{Alnum}\\p{Alnum}数字或字母字符
\p{Punct}\\p{Punct}标点符号
\p{Graph}\\p{Graph}可见字符:[\p{Alnum}\p{Punct}]
\p{Print}\\p{Print}可打印字符:[\p{Graph}\x20]
\p{Blank}\\p{Blank}空格或制表符:[\t]
\p{Cntrl}\\p{Cntrl}控制字符:[\x00-\x1F\x7F]
限定修饰符
限定修饰符意义示例
?0次或1次A?
*0次或多次A*
+1次或多次A+
{n}正好出现n次A{2}
{n,}至少出现n次A{2,}
{n,m}出现n~m次A{2,4}

示例如下:

public class reTest {
	public static void main(String args[]) {
		String regexString = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
		String str1 = "1232@";
		String str2 = "asdasd";
		String str3 = "123456@asdawq.com";
		String str4 = "123456@asda.qas.com";
		if (str1.matches(regexString)) {
			System.out.println(str1+"是一个合法的E-mail地址格式");
		}
		if (str2.matches(regexString)) {
			System.out.println(str2+"是一个合法的E-mail地址格式");
		}
		if (str3.matches(regexString)) {
			System.out.println(str3+"是一个合法的E-mail地址格式");
		}
		if (str4.matches(regexString)) {
			System.out.println(str4+"是一个合法的E-mail地址格式");
		}
	}
}
/*输出结果如下:
123456@asdawq.com是一个合法的E-mail地址格式
123456@asda.qas.com是一个合法的E-mail地址格式
*/

2、字符串生成器

利用StringBuilder类中的方法可以动态地执行添加、删除和插入等字符串的编辑操作,常用方法如下:

(1)append():用于向字符串生成器中追加内容,语法如下

    append(content)

    其中content表示要追加到字符串生成器中的内容,可以是任何类型的数据或者其他对象

(2)insert():用于向字符串生成器中的指定位置插入数据内容,语法如下

    insert(int offset,arg)

    offset:字符串生成器的位置

    arg:将插入至字符串生成器中的数据,可以说任何类型的数据或者其他对象

    示例如下:

public class insertTest {
	public static void main(String args[]) {
		StringBuilder str = new StringBuilder("Hello");
		str.insert(2, "123");
		System.out.println(str.toString());
	}
}
/*输出结果如下:
He123llo
*/

(3)delete():用于移除此序列的子字符串中的字符,语法如下

    delete(int start,int end)

    start:将要删除的字符串的起点位置

    end:将要删除的字符串的结束位置

    示例如下:

public class deleteTest {
	public static void main(String args[]) {
		StringBuilder str = new StringBuilder("123456789");
		str.delete(3, 5);
		System.out.println(str.toString());
	}
}
/*输出结果如下:
1236789
*/

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值