14-正则表达式、其他api剖析

上传人:今*** 文档编号:105809992 上传时间:2019-10-13 格式:DOCX 页数:17 大小:185.35KB
返回 下载 相关 举报
14-正则表达式、其他api剖析_第1页
第1页 / 共17页
14-正则表达式、其他api剖析_第2页
第2页 / 共17页
14-正则表达式、其他api剖析_第3页
第3页 / 共17页
14-正则表达式、其他api剖析_第4页
第4页 / 共17页
14-正则表达式、其他api剖析_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《14-正则表达式、其他api剖析》由会员分享,可在线阅读,更多相关《14-正则表达式、其他api剖析(17页珍藏版)》请在金锄头文库上搜索。

1、正则表达式、其他API面试题:/* * 面试题 * * 在Integer类中定义了成员内部类IntegerCache * 在这个内部类中有一个静态代码块,这个代码块中创建了 * Integer类型的数组,共计有256个空间, * 紧接着使用循环给Integer数组进行初始化。 * 将-128到127之间的256个数字已经封装成Integer对象存放在数组中。 * * 只要在程序中使用到的Integer类,就会自动的加载内部类IntegerCache。 * 内部类中就会将上述-128到127已经存储在数组中。 * 我们在程序中需要使用-128到127之间的Integer类型的数据时, * 这时J

2、VM不会再将我们制定的这些数据封装成对象,而是到IntegerCache内部维护的那个数组中 * 找到-128到127之间已经存在的这个对象,将这个对象的地址赋值给我们的程序中的引用变量。 * */public class Test public static void main(String args) /下面两行代码,其实并没有单独的去封装Integer对象,而是找缓存中的对象Integer i = -128;Integer i2 = -128;/下面两行代码,指定的数据由JVM单独去封装成Integer对象Integer i3 = -129;Integer i4 = -129;Syste

3、m.out.println(i = i2); /trueSystem.out.println(i3 = i4); /falseInteger i5 = new Integer(127);Integer i6 = new Integer(127);System.out.println(i5 = i6); /false1. 正则表达式1.1. 正则引入需求:验证输入的QQ号码是否正确/* * 需求:验证输入的QQ号码是否正确 * * 分析: * QQ号码是纯数字组成 * QQ的长度5 到 12 位之间 * QQ号码不能以 0 开始 * */public class QQCheckDemo publ

4、ic static void main(String args) /获取录入的QQ号码Scanner sc = new Scanner(System.in);System.out.println(请输入您的QQ号码:);String qq = sc.nextLine();/验证长度if( qq.length() = 5 & qq.length() = 12 )/验证是否以零开始if( !qq.startsWith(0) )/* * 验证是纯数字 * 将表示QQ号码的字符串转成数字,如果字符串中全部是数字 * 一定可以转成一个整数,如果有其他的数字,转换就会发生异常 */trylong qq_n

5、um = Long.parseLong(qq);System.out.println(QQ号码正确);catch( NumberFormatException e )/e.printStackTrace();System.out.println(QQ号码必须是纯数字组成!);elseSystem.out.println(QQ号码不能以零开始!);elseSystem.out.println(QQ号码长度有误!);/演示使用正则验证QQ号码boolean b = qq.matches(1234567890-94,11);System.out.println(b);1.2. 正则表达式介绍1.2.

6、1. 正则表达式概念:在程序中经常需要对字符串这类数据进行合法性的验证,如果没有其他的新技术,就只能采用字符串中的原始方法进行截取等各种的判断,这样代码书写量大,并且不利于程序的维护。于是就提供了更加简便的技术来验证码字符串这类数据。这个技术就是正则表达式。正则表达式:正确的规则组成的一个表达式,它可以去验证其他的字符串数据合法性。1.2.2. 正则表达式的书写规则正则表达式是验证字符串:在正则表达式中书写的规则是限定字符串中不同位置上可以出现哪些字符数据。正则的书写:正则表达式的体现也是字符串。需要验证的字符串数据:”abc” 条件是:字符串第一位上只能书写小写字母a 字符串第二位上可以书写

7、 b 或者 c 字符串第三位上c或d或e正则表达式书写:”abccde”正则表达式的第一位上书写规则是用来验证字符串中第一位上可以书写的字符数据解释正则表达式中的用法:书写 中的内容,是用来验证字符串中某个位置上可以书写的字符数据字符串数据:”13499990000” 正则表达式:”1345780-9” 验证前三位解释正则表达式中 的用法:XN X表达式的是正则的规则,后面的N 表达式的是前面的正则规则所在位置往后可以出现的次数字符串数据:”13499990000” 正则表达式:”1345780-99” 这个规则规定需要被验证的字符串中的第一位只能数字1,第二位是可以3、4、5、7、8中的任何

8、一个,从第三位开始可以是0-9中的任何一个,一直到第11位。X? X依然是正则的规则,?表达式的是X这个规则可以出现零次或一次X* X依然是正则的规则,*表达式的是X这个规则可以出现零次或者多次X+ X依然是正则的规则,+表达式的是X这个规则可以出现一次或者多次 字符串数据:”abc“正则规则:”a?”字符串数据:”abcABC”正则规则:”.bcABC” 说明:当前的正则规定的字符串的第一位上可以是任何的字符数据字符串数据:”13499990000” 正则表达式:”134578d9”. 表示任意字符数据d 表示数字字符w 表示字母 数字 下划线 (注意:没有 $ 符号)1.3. 正则演示/*

9、 * 验证手机号码 ,使用正则表达式 */public class TelNumberCheck public static void main(String args) /定义正则规则String regex = 1345780123456789d8;String tel = 13345678901;/验证boolean b = tel.matches(regex);/System.out.println(b);if( b )System.out.println(手机号码正确);elseSystem.out.println(手机号码有误);1.4. 正则常用功能介绍1.4.1. 匹配功能使用

10、String类中的matches方法完成:/* * 简单验证身份证号码正确性 */public class IDCardCheck public static void main(String args) /需要被验证的字符串数据String idCard = 11012219901212567X;/正则的规则String regex = 1-90-95120-93010-901230-9d30-9Xx;/调用String类中的匹配方法验证boolean b = idCard.matches(regex);System.out.println(b);1.4.2. 切割功能/ 切割,使用点切割p

11、ublic static void method2() / 需要被切割的字符串数据String s = abc.qwe.jk.2322.22bcd.3324;/* * 由于点(.)在正则中有特定的含义,如果在程序中需要使用点本身 * 就需要使用转义字符表示点 */String regex = .+;String strs = s.split(regex);for (int i = 0; i strs.length; i+) System.out.println(strsi);/ 使用正则切割字符串public static void method() / 需要被切割的字符串数据String s

12、 = abc qwe jkl 123 3432 324;/ 书写正则规则String regex = +;String strs = s.split(regex);for (int i = 0; i strs.length; i+) System.out.println(strsi);1.4.3. 正则中的组/ 切割,要求按照不同的叠词进行切割public static void method3() / 需要被切割的字符串数据String s = abc#qwe#jklllll1232222bcd#abcccc3440123324;/* * 使用不同的叠词切割,由于不知道具体使用的是哪个叠词

13、* 字符串中的任何字符都有可能重复,这些字符都有可能作为切割的标准 * * 我们不知道具体是哪个字符在重复,因此只能使用正则中的点(.)表示被切割的那个字符 * 只要这个字符重复了,就使用它作为切割标准。 * * 只要当前这个点匹配上了这个字符,就必须要求这个字符后面的 位置还要是这个字符 * 解决上述的这个问题:需要将已经匹配上的正则规则在当前这个位置的后面继续使用 * 这时就需要将这个规则封装成正则中的组,然后在后面的位置上使用这个组 * * 正则中的组的书写格式: * (正则规则)后面就可以使用前面小括号中封装好的规则 * 如果需要在当前这个正则中引用前面已经存在的组,格式是: * 组号 * 正则中只要使用小括号,就代表将

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号