Java学习笔记21(String类补充:正则表达式)
正如python的re模块,不过Java和Python的正则表达式有一些区别,这里做简单介绍,具体的细节可以参考网上其他的文章:
功能:可以用于检验一个字符串,比如验证用户名,验证密码格式,验证是否是邮箱,等等
示例:
"[0-9]{6,12}"匹配规则:6到12位的数字,比如123456789就是true,12345就是false
"1[3578][0-9]{9}"匹配规则:1开头,第二位是3578中的一个,后面九个任意数字,比如13345678912就是true
"a*b"匹配规则:在多个a或者0个a之后有一个b,b必须是最后一个字符,比如aaaaab就是true,abc就是false
String类中还有几个方法上篇没有提到,这里会用到
基础知识不再介绍,示例:
matches方法:
package demo; public class RegexDemo {
public static void main(String[] args) {
//检查QQ号码,不能0开头,全数字,5位到10位
checkQQ();
//检查手机号,1开头,第二位是34578,共11位
checkTel();
}
public static void checkQQ(){
String QQ = "123456";
boolean b = QQ.matches("[1-9][\\d]{4,9}");
System.out.println(b);//true
}
public static void checkTel(){
String telNumber = "13312345678";
boolean b = telNumber.matches("1[34578][\\d]{9}");
System.out.println(b);//true
}
}
split方法:
package demo; public class RedexDemo { public static void main(String[] args) {
split_1();
split_2();
split_3();
} public static void split_1(){
String str = "I love java";
String[] strArr = str.split(" +");
for (int i = 0; i < strArr.length; i++) {
System.out.println(strArr[i]);
}
//打印出:I love java
} public static void split_2(){
String str = "10-12-45-78-62";
String[] strArr = str.split("-");
for (int i = 0; i < strArr.length; i++) {
System.out.println(strArr[i]);
}
//打印出:10 12 45 78 62
} public static void split_3(){
String str = "192.168.160.1";
String[] strArr = str.split("\\.");
for (int i = 0; i < strArr.length; i++) {
System.out.println(strArr[i]);
}
//打印出:192 168 160 1
}
}
replaceAll方法:
package demo; public class RedexDemo { public static void main(String[] args) {
replaceAll_1();
} public static void replaceAll_1(){
String str = "Hello666123Ilove789java";
String str1 = str.replaceAll("[\\d+]","#");
System.out.println(str1);
//输出:Hello######Ilove###java String str2 = str.replaceAll("[\\d]+", "#");
System.out.println(str2);
//输出:Hello#Ilove#java
}
}
正则表达式练习:
package demo; public class RedexDemo {
public static void main(String[] args) {
//检查邮箱地址
checkMail();
}
public static void checkMail(){
String email = "abc123@sina.com.cn";
boolean b = email.matches("[a-zA-Z0-9_]+@[0-9a-z]+(\\.[a-z]+)+");
System.out.println(b);//true
}
}
Java学习笔记21(String类补充:正则表达式)的更多相关文章
- Java学习笔记 02 String类、StringBuilder类、字符串格式化和正则表达式
一.String类一般字符串 声明字符串 >>String str 创建字符串 >>String(char a[])方法用于将一个字符数组创建为String对象 >> ...
- java学习笔记之String类
String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava& ...
- java学习笔记5——String类常用方法
1.字符串长度计算: int i = String1.length(); 2.字符串比较:1) equals()和equalsIgnoreCase //比较两个字符串对象的实体是否相同,相同输出tru ...
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- 【原】Java学习笔记023 - 字符串缓冲区_正则表达式
package cn.temptation; import java.util.Arrays; public class Sample01 { public static void main(Stri ...
- Java学习笔记16---抽象类与接口的浅显理解
抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象 ...
- 【原】Java学习笔记031 - 常用类
package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...
- 1.9(java学习笔记)object类及toString()与equals()方法
object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...
- Java学习笔记day06_自定义类_ArrayList
1.自定义类class 使用类的形式, 对现实中的事物进行描述. 类是引用数据类型. 事物: 方法,变量. 方法:事物具备的功能. 变量:事物的属性. 格式: public class 类名{ //属 ...
随机推荐
- json解析—Gson以及GsonFormat插件的运用
最近开始慢慢做毕业设计了,遇到一个功能是获取天气预报的,我选择的是和风天气的api,返回的是JSON数据,所以遇到了解析JSON的问题 首先简单说下JSON,JSON(JavaScript Objec ...
- Android开发之监听发出的短信
执行效果图: 预备知识: 为了监听指定的ContentProvider的数据的改变,须要通过ContentResolver向指定Uri注冊CotentObserver监听器.ContentResolv ...
- CI环境配置
CI:php的MVC框架M(模型model):与数据库打交道的,一般情况下数据库里面的一张表对应一个Model,在里面对应该表的增删改查的操作V(视图view):用户看到的界面,其中很多数据是从数据库 ...
- IDEA定位到类的代码区域(查看类的源码)
经常需要查看某一个类中的成员变量和方法,那么怎么进入到这个类的源码区域呢?在IDEA中只需要使用快捷键: ctrl+shift+t 就可以快速定位到这个类的源码.
- C# Lock、Monitor避免死锁
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 中国IT职业培训市场经历的几波浪潮,未来的浪潮又是那一波?
第一波 电脑普及性培训时代 2000年至2003年左右,中国正处于PC计算机普及阶段,而IT职业教育也刚开始兴起,这一波浪潮主要以计算机办公自动化.平面设计.计算机硬件维修.为主:几家大的IT培训机构 ...
- qt调用simsimi api实现小黄鸡
项目地址:https://github.com/racaljk/xiaojianji 好吧我把它命名为小贱鸡.,下面说一说他的实现. 由于官方的simsimi api需要收费,免费试用版有各种限制,所 ...
- Udacity并行计算课程笔记-The GPU Programming Model
一.传统的提高计算速度的方法 faster clocks (设置更快的时钟) more work over per clock cycle(每个时钟周期做更多的工作) more processors( ...
- [Find the last digit when factorial of A divides factorial of B]
Given two numbers A and B. The task is to compute the last digit of the resulting F, where F= B! / A ...
- js垃圾回收机制
垃圾回收机制,简称GC(garbage collection),会定期(周期性)地回收那些不再使用的变量,然后释放其内存. 而内存占用的情况有很多: 1.变量 2.字面量对象声明:var obj = ...