15.2 字符串类中涉及正则表达式的常用方法

字符串类中涉及正则表达式的常用方法:



public boolean matches(String regex) //判断字符串是否匹配给定的规则:

/*
*  检查QQ号码是否合法
*  0不能开头,全数字, 位数5,10位
*  123456 
*  \\d  \\D匹配不是数字
*/

public static void checkQQ(){
String QQ = "123456";
//检查QQ号码和规则是否匹配,String类的方法matches
boolean b = QQ. matches("[1-9][\\d]{4,9}");
System.out.println(b);
}


/*
*  检查手机号码是否合法
*  1开头 可以是34578  0-9 位数固定11位
*/

public static void checkTel(){
String telNumber = "13351280057";
//String类的方法matches
boolean b = telNumber. matches("1[34857][\\d]{9}");
System.out.println(b);
}


public String[] split(String regex) //根据给定正则表达式的匹配规则,拆分此字符串:


/*
*  String类方法split对字符串进行切割
*  12-25-36-98  按照-对字符串进行切割
*/

public static void split_1(){
String str = "12-25-36-98";
//按照-对字符串进行切割,String类方法split
String[] strArr = str.split("-");
System.out.println("数组的长度"+strArr.length);
for(int i = 0 ; i < strArr.length ; i++){
System.out.println(strArr[i]);
}
}


/*
* String类方法split对字符串进行切割
* 18 22 40 65 按照空格切割字符串
*/

public static void split_2(){
String str = "18    22     40          65";
String[] strArr = str.split(" +");
System.out.println("数组的长度"+strArr.length);
for(int i = 0 ; i < strArr.length ; i++){
System.out.println(strArr[i]);
}
}


/*
* String类方法split对字符串进行切割
* 192.168.105.27 按照 点切割字符串
*/

public static void split_3(){
String ip = "192.168.105.27";
String[] strArr = ip.split("\\.");
System.out.println("数组的长度"+strArr.length);
for(int i = 0 ; i < strArr.length ; i++){
System.out.println(strArr[i]);
}
}



public String replaceAll(String regex,String replacement)  //将符合规则的字符串内容,全部替换为新字符串:

/*
* "Hello12345World6789012"将所有数字替换掉
* String类方法replaceAll(正则规则,替换后的新字符串)
*/

public static void replaceAll_1(){
String str = "Hello12345World6789012";
str = str. replaceAll("[\\d]+", "#");
System.out.println(str);
}



正则表达式的练习:

匹配正确的数字:

  匹配规则:

    匹配正整数:”\\d+”

    匹配正小数:”\\d+\\.\\d+” 

    匹配负整数:”-\\d+”

    匹配负小数:”-\\d+\\.\\d+”

    匹配保留两位小数的正数:”\\d+\\.\\d{2}”

    匹配保留1-3位小数的正数:”\\d+\\.\\d{1,3}”

匹配合法的邮箱:

public class RegexDemo2 {
public static void main(String[] args) {
checkMail();
}
/*
*  检查邮件地址是否合法
*  规则:
*   1234567@qq.com
*   mym_ail@sina.com
*   nimail@163.com
*   wodemail@yahoo.com.cn    
*   
*   @: 前  数字字母_ 个数不能少于1个
*   @: 后  数字字母     个数不能少于1个
*   .: 后面 字母 
*     
*/
public static void checkMail(){
String email ="abc123@sina.com";
boolean b = email. matches("[a-zA-Z0-9_]+@[0-9a-z]+(\\.[a-z]+)+");
System.out.println(b);
}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值