Java常见对象-6.正则表达式

package dk.day14;

public class Dk1Regex {

	public static void main(String[] args) {
		//正则表达式判断qq号是否合法
        String regex = "[1-9][\\d] {4,14}";
		System.out.println("12345".matches(regex));

	}
	
	//判断qq号是否合法
	public static boolean qq(String qq) {
		boolean flag = true;
		if (qq.length() > 5 && qq.length() < 15) {
			if (!qq.startsWith("0")) {
				char[] arr = qq.toCharArray();   //将字符串转换为字符数组
				for (int i = 0;i < arr.length;i++) {
					char temp = arr[i];
//					if(temp >='0' && temp <= '9' ) {
//						return flag;
//					}else {
//						flag = false;
//					}
					if(!Character.isDigit(temp)) {  //判断是否为数字
						flag = false;
						break;              //直接到return
					}
				}
			}else {
				flag = false;
			}
		}else {
			flag = false;
		}
	return flag;
	}	

}
String regex = "[abcd]";              //中括号里代表单个字符就为true
String regex = "[^abc]";              //取反除了abc就为ture(必须是单个字符比如10(两个字符)就是false)
String regex = "[a-zA-Z]";          //包含a-z和A-Z单个字符
String regex = "[a-z[A-Z]]";        //和上面效果一样
String regex = "[a-z&&[def]]";      //交集。就是def
String regex = "[a-z&&[^d-f]]";      //交集。不含d-f的其他单个字符

String regex = ".";      //一个.代表一个任意字符(如果要标记.需要\\.来转义)
String regex = "\\d";      //实际是\d,因为\代表转义字符,代表数字0-9单个字符
String regex = "\\D";      //代表数字非0-9单个字符
String regex = "\\s";      //代表空白字符,空格、\r、\n、\t(tab),单个字符
String regex = "\\S";      //代表非空白字符,单个字符
String regex = "\\w";      //代表单词字符,a-z、A-Z、_、0-9,单个字符
String regex = "\\W";      //代表非单词字符,单个字符

String regex = "[abc]?"    //abc出现一次或一次也不能出现别的
String regex = "[abc]*"    //abc出现0次或多次也不能出现别的(可以多个字符)
String regex = "[abc]+"    //abc出现一次或多次也不能出现别的(可以多个字符)
String regex = "[abc]{n}"    //abc出现n次,不能出现别的(可以abc共5个)    
String regex = "[abc]{n,m}"    //abc出现至少n次不超过m次(m不写就是无穷大)也不能出现别的    
package dk.day14;

import java.util.Arrays;

public class Dk2Regex {
	
	//将字符串:"91 27 46 38 50"实现排序
	//1.将字符串切割成字符数组
	//2.定义一个与String数组长度相同的数组,将String数组中字符串转换后存储在数组中
	//3.对int数组排序
	//4.将int数组转换为字符串
	public static void main(String[] args) {
		String s = "91 27 46 38 50";
		String[] arr = s.split(" ");      //将字符串切割成字符串数组
		int[] iArr = new int[arr.length];  //定义int类型数组,长度与String数组相同
		for (int i = 0; i < arr.length; i++) {
			iArr[i] = Integer.parseInt(arr[i]);   //将字符串中的每一个数字字符串转换为数字
		}
		//排序
		Arrays.sort(iArr);
		System.out.println(arr2String(iArr));

	}
	public static String arr2String(int[] arry) {
		StringBuilder sb = new StringBuilder();
		sb.append("[");
		for (int i = 0;i < arry.length;i++ )
		{
			if (i == arry.length - 1)           //最后一个
			{
				sb.append(arry[i]).append("]");
			}else
				sb.append(arry[i]).append(",");
		}
		return sb.toString();             //将StringBuilder类型转换为String类型
	}

}
//正则表达式替换
String s = "itcast";
String regex = "[abc]";
String s1 = s.replaceAll(regex,"oo");      //oo作为一个整体替换
//输出:itoooost

//判断是否是叠词高高兴兴
String regex = "(.)\\1(.)\\2";          //(.)代表一个组\\1是第一个组的值\\2是第二个组的值
System.out.println("高高兴兴".matches(regex));    //输出为:true

//判断是否为高兴高兴
String regex = "(..)\\1";

//判断出现四个一模一样的字符
String regex = "(.)\\1{3}"       //(.)代表任意字符。\\1{3}代表任意字符出现3次
    
//按照叠词切割
String regex = "(.)\\1+"
String s = "skdddfgggkj"    
System.out.println(s.spilt(regex));

//替换:我。。。。。。要要要。。。。学。。编程 ——》我要学编程
String s = "我。。。。。。要要要。。。。学。。编程";
String s2 = s.replaceAll("\\.+","");    //将。替换为null
String s3 = s2.replaceAll("(.)\\1+","$1");     //$1为获取第一组,将一个字符换一堆字符

//匹配电话号码
String str = "我的电话是12345678901";
String regex = "1[34578]\\d{9}";
Pattern p = Pattern.compile(regex);          //获取正则对象
Matcher m = p.matcher(str);                  //获取匹配器
boolean b = m.find();          //找是否有正则所匹配的。输出为true
String s = m.group();          //将电话提出来(只能提出来一个,通过循环提出所有的)
while(m.find)
    System.out.println(m.group());	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值