Java语言学习day31--8月06日
今日内容介绍
1、正则表达式的定义及使用
2、Date类的用法
3、Calendar类的用法
###01正则表达式的概念和作用
* A: 正则表达式的概念和作用
* a: 正则表达式的概述
* 正则表达式也是一个字符串,用来定义匹配规则,在Pattern类中有简单的规则定义。
可以结合字符串类的方法使用。
* 简单记:正则表达式是具有特殊含义的字符串。
* b: 正则表达式的作用
* 比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的
###02正则表达式语法规则
* A: 正则表达式语法规则
* a: 字符
* x 代表的是字符x
* \\ 代表的是反斜线字符'\'
* \t 代表的是制表符
* \n 代表的是换行符
* \r 代表的是回车符
* b: 字符类
* [abc] a、b 或 c(简单类)
* [^abc] 任何字符,除了 a、b 或 c(否定)
* [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
* [0-9] 0到9的字符都包括
* [a-zA-Z_0-9] 代表的字母或者数字或者下划线(即单词字符)
* c: 预定义字符类
* . 任何字符。
* \d 数字:[0-9]
* \w 单词字符:[a-zA-Z_0-9]如"com.itheima.tests"/finish
* d: 边界匹配器
* ^ 代表的是行的开头
* $ 代表的是行的结尾
* \b 代表的是单词边界
* e: 数量词
* X? X,一次或一次也没有
* X* X,零次或多次
* X+ X,一次或多次
* X{n} X,恰好 n 次
* X{n,} X,至少 n 次
* X{n,m} X,至少 n 次,但是不超过 m 次
###03正则表达式练习和相关的String类方法
* A: 正则表达式练习和相关的String类方法
* a: boolean matches(String 正则的规则)
* "abc".matches("[a]")
* 匹配成功返回true
* b: String[] split(String 正则的规则)
* "abc".split("a")
* 使用规则将字符串进行切割
* c: String replaceAll( String 正则规则,String 字符串)
* "abc0123".repalceAll("[\\d]","#")
* 按照正则的规则,替换字符串
###04正则表达式匹配练习
* A: 正则表达式匹配练习
* a: 案例代码
public class RegexDemo {
public static void main(String[] args) {
checkTel();
}
/*
* 检查手机号码是否合法
* 1开头 可以是34578 0-9 位数固定11位
*/
public static void checkTel(){
String telNumber = "1335128005";
//String类的方法matches
boolean b = telNumber.matches("1[34857][\\d]{9}");
System.out.println(b);
}
/*
* 检查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);
}
}
###05正则表达式切割练习
* A: 正则表达式切割练习
* a: 案例代码
public class RegexDemo1 {
public static void main(String[] args) {
split_1();
split_2();
split_3();
}
/*
* 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]);
}
}
/*
* 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对字符串进行切割
* 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]);
}
}
}
###06正则表达式替换练习
* A: 正则表达式替换练习
* a: 案例代码
public class RegexDemo1 {
public static void main(String[] args) {
replaceAll_1();
}
/*
* "Hello12345World6789012"将所有数字替换掉
* String类方法replaceAll(正则规则,替换后的新字符串)
*/
public static void replaceAll_1(){
String str = "Hello12345World6789012";
str = str.replaceAll("[\\d]+", "#");
System.out.println(str);
}
}
Java语言学习day31--8月06日的更多相关文章
- Java语言学习day01--6月28日
Java语言学习day01一:Java概述 1.Java语言发展史 任职于太阳微系统的 詹姆斯·高斯林 等人于1990年代初开发Java语言的雏形,最初被命名为 Oak ,目标设置在 家用电器等小型系 ...
- Java语言学习day02--6月29日
Java语言学习day02###01常用的DOS命令 * A: 常用的DOS命令 * a: 打开Dos控制台 * win+r--cmd--回车 * b: 常用dos命令 * cd.. : 退回到上一级 ...
- Java Calendar获取年、月、日、时间
Java Calendar获取年.月.日.时间 Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00" ...
- iPad mini Retina越狱小结【2014年02月06日 - 初稿】
Update History 2014年02月06日 - 初稿 0.引言 本来一直都没有苹果的产品除了第一代的iPod(没怎么使用最后大学送人了 @李清纯(255270520) ,巧合的是老妈学校发了 ...
- CocoaPods管理iOS项目 2018年11月06日
一.创建Test工程项目 二.打开终端 当前pod版本(1.6.0.beta.2最新版本2018年11月06日)和gem源路径(https://gems.ruby-china.com): 1.cd+当 ...
- Java语言学习day33--8月8日
今日内容介绍1.基本类型包装类2.System类3.Math类4.Arrays类5.大数据运算 ###01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实 ...
- Java语言学习day32--8月07日
###07正则表达式邮箱地址验证 * A: 正则表达式邮箱地址验证 * a: 案例代码 public class RegexDemo2 { public static void main(String ...
- Java语言学习day15--7月21日
今日内容介绍1.Eclipse开发工具2.超市库存管理系统 ###01Eclipse的下载安装 * A: Eclipse的下载安装 * a: 下载 * http://www.eclipse.org ...
- Java语言学习总结 扩展篇 DateFormat类
DateFormat类 java.text .DateFormat 是 日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换:也就是可以在Date对象与String对象之间进 ...
- python学习 day21 (3月28日)----(抽象类 多态 nametuple dump)
不要因为走的路太久了,而忘记了为了什么而出发. 提前作准备了吗?把思维导图的东西做了吗? 和工作了几年的人,相比,是不是相同的水平,如果要写简历的话. 一边学习,一边复习. 小就是大,少就是多. 1. ...
随机推荐
- python 模块之 selenium 自动化使用教程
一.安装 pip install Selenium 二.初始化浏览器 Chrome 是初始化谷歌浏览器 Firefox 是初始化火狐浏览器 Edge 是初始化IE浏览器 PhantomJS 是一个无界 ...
- python练习册 每天一个小程序 第0011题
1 # -*-coding:utf-8-*- 2 3 4 def test(content): 5 flag = 0 6 with open('filtered_words.txt') as fp: ...
- java 队列
Java中的list和set有什么区别 list与set方法的区别有:list可以允许重复对象和插入多个null值,而set不允许:list容器是有序的,而set容器是无序的等等 Java中的集合 ...
- Oracle问题解决记录
一.前言 oracle这么一个庞大的东西,出点问题真是太常见了.开个博客,用于记录遇到的问题吧. 持续更新. 二.问题列表 归档日志满,引起的问题. 一台服务器,用了很久了,某天,出现了磁盘空间占满的 ...
- JDK中哪些类是不能继承的?
不能继承的是类是那些用final关键字修饰的类. 实际上即使我们自己开发的类,也可以通过使用final修饰来阻止被继承.通过使用final修饰一个类,可以阻止该类被继承,这样该类就被完全地封闭起来了, ...
- Ajax是什么?包含什么技术?有什么作用?
Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写. Ajax 尝试建立桌面应用程序的功能和交互性,与不断更新的 Web 应用程序之间的桥梁.不 ...
- XML技术的作用?
XML技术用于数据存储.信息配置.数据交换三方面. 可以将数据存储在XML中,通过节点.元素内容.属性标示数据内容及关系. 可以使用XML很方便的做信息配置,软件的各种配置参数和对象关系都存贮在XML ...
- 列举 spring 支持的事务管理类型?
Spring 支持两种类型的事务管理: 1. 程序化事务管理:在此过程中,在编程的帮助下管理事务.它为您提供极大 的灵活性,但维护起来非常困难. 2. 声明式事务管理:在此,事务管理与业务代码分离.仅 ...
- Atomic 的实现原理
1.直接操作内存,使用Unsafe 这个类 2.使用 getIntVolatile(var1, var2) 获取线程间共享的变量 3.采用CAS的尝试机制(核心所在),代码如下: public fin ...
- 遇到的问题之“解决tomcat中文乱码问题”
方案1:在server.xml中添加了 URIEncoding="UTF-8" 属性 路径:C:\stop\apache-tomcat-8.5.69\conf 修改内容 如若方案1 ...