概述
JavaSE进阶8之包装类、正则表达式
- 包装类
- 包装类的特有功能
- 正则表达式
- 正则表达式概述、初体验
- 初体验
- 正则表达式的匹配规则
- 正则表达式的常见案例
- 案例 请使用正则表达式完成如下需求
- 需求
- 分析
- 正则表达式在方法中的应用
- 正则表达式在字符串方法中的使用
- 正则表达式爬取信息
包装类
- 其实就是8种基本数据类型对应的引用类型
原因 - Java为了实现一切皆对象,为8种基本类型提供了对应的引用类型
- 后面的集合和泛型其实也只能支持包装类,不支持基本数据类型
自动装箱:基本类型的数据和变量可以直接赋值给包装类型的变量
自动拆箱:包装类型的变量可以直接赋值给基本数据类型的变量
包装类的特有功能
- 包装类的变量的默认值可以是null,容错率更高
- 可以把基本类型的数据转换成字符串类型
- 可以把字符串类型的数值转换成真实的数据类型
package com.echo.d4_javase.use_Integer;
public class demo1 {
public static void main(String[] args) {
int i1=11;
Integer i2=12;
Integer i3=i1;
//自动装箱
int i4=i3;
//自动拆箱
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
double d1=11.25;
Double d2=12.25;
Double d3=d1;
//自动装箱
double d4=d2;
//自动拆箱
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
System.out.println(d4);
System.out.println("--------------------------");
//int a=null; 报错
Integer a=null;
Integer b=11;
String s = Integer.toString(b);
System.out.println(s+5);
Double c=11.5;
String s1 = Double.toString(c);
System.out.println(s1+3.2);
Integer d=125;
String s2 = d.toString();
System.out.println(s2+123);
String s3=d+"";
System.out.println(s3+123);
System.out.println("--------------------------");
String num="335";
String num1="33.266";
String correct="true";
//字符串转换为数字
int i = Integer.parseInt(num) + 5;
double j=Double.parseDouble(num1)+5.5;
boolean k=!Boolean.parseBoolean(correct);
System.out.println(i);
System.out.println(j);
System.out.println(k);
}
}
正则表达式
正则表达式概述、初体验
- 正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性
初体验
- 需求:假如现在要求校验一个qq号码是否正确,6位及20位之内,必须全部是数字
- 先使用目前所学知识完成校验需求;然后体验一下正则表达式校验
package com.echo.d4_javase.use_Integer;
import java.util.Scanner;
public class demo2 {
public static void main(String[] args) {
while (true) {
System.out.println("请输入你的qq号码:");
Scanner sc = new Scanner(System.in);
String qq = sc.next();
if(checkQQnum2(qq)){
break;
}else
continue;
}
}
public static boolean checkQQnum2(String qq){
return qq!=null&&qq.matches("\d{6,20}");
}
public static boolean checkQQnum1(String qq){
if(qq==null||qq.length()>20||qq.length()<6){
return false;
}
for (int i = 0; i < qq.length(); i++) {
char a=qq.charAt(i);
if(a<'0'||a>'9'){
return false;
}
}
return true;
}
public static boolean checkQQnum(String qq)
{
if(qq==null||qq.length()<6||qq.length()>20){
System.out.println("出错了。。。qq号码必须是6-20位的");
return false;
}
boolean isErr=false;
for (int i = 0; i < qq.length(); i++) {
char c = qq.charAt(i);
try{
Integer a=Integer.parseInt(String.valueOf(c));
}catch (Exception ex){
System.out.println("出错了。。qq号码必须是数字");
isErr=true;
break;
}
}
if(!isErr){
System.out.println("qq号码输入正确");
return true;
}else{
return false;
}
}
}
正则表达式的匹配规则
正则表达式的常见案例
案例 请使用正则表达式完成如下需求
需求
- 请编写程序模拟用户输入手机号码,验证格式正确,并给出提示,直到格式输入正确为止
- 请编写程序模拟用户输入邮箱号码,验证格式正确,并给出提示,直到格式输入正确为止
- 请编写程序模拟用户输入电话号码,验证格式正确,并给出提示,直到格式输入正确为止
分析
- 定义方法,接收用户输入的数据,使用正则表达式完成检验,并给出提示
package com.echo.d4_javase.use_regx;
import java.util.Scanner;
public class demo1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//
checkPhone(sc);
//
checkEmail(sc);
checkLandline(sc);
}
public static void checkPhone(Scanner sc){
while (true) {
System.out.println("请输入您的手机号");
String phone = sc.next();
if(phone.matches("1[3-9]\d{9}")){
System.out.println("手机号格式正确,注册成功!");
break;
}else{
System.out.println("格式有误");
}
}
}
public static void checkEmail(Scanner sc){
while(true){
System.out.println("请输入邮箱账号:");
String email=sc.next();
if(email.matches("\w{1,30}@[a-zA-Z0-9]{2,20}(\.[a-zA-Z0-9]{2,20}){1,2}")){
System.out.println("邮箱号格式正确,注册成功!");
break;
}else{
System.out.println("格式有误");
}
}
}
public static void checkLandline(Scanner sc){
while(true){
System.out.println("请输入您的电话号:");
String call=sc.next();
if(call.matches("0\d{2,6}-?\d{5,20}")){
System.out.println("电话号格式正确,注册成功!");
break;
}else
System.out.println("格式有误");
}
}
}
正则表达式在方法中的应用
正则表达式在字符串方法中的使用
- public String replaceAll(String regex,String newStr)
按照正则表达式匹配的内容进行替换 - public String[] split(String regex)
按照正则表达式匹配的内容进行分割字符串,返回一个字符串数组
package com.echo.d4_javase.use_regx;
public class demo2 {
public static void main(String[] args) {
String a="王五dlkfl_dcl__1326张三154562ldjf_klj__李四xmfndk_ld6523";
String[] arrs=a.split("\w+");
for (String arr : arrs) {
System.out.println(arr);
}
String a1=a.replaceAll("\w+"," ");
System.out.println(a1);
}
}
正则表达式爬取信息
package com.echo.d4_javase.use_regx;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class demo3 {
public static void main(String[] args) {
String rs="来一起学习Java,电话020-432165526,或者联系邮箱"+
"abckdkk@baidu.com,电话18762832633,0203232585222"+
"邮箱Boszi@baidu.cn,400-100-3233 , 400100032232";
//爬取出 电话号码 和 邮箱 和 手机号 和 400开头的电话号
//1.定义爬取规则,字符串形式
String regx="(\w{1,30}@[a-zA-Z0-9]{2,20}(\.[a-zA-Z0-9]{2,20}){1,2})|" +
"(1[3-9]\d{9})|" +
"(0\d{2,6}-?\d{5,30})|" +
"(400-?\d{3,9}-?\d{3,9})";
//2.把这个爬取规则编译成匹配对象
Pattern pattern=Pattern.compile(regx);
//3.得到一个内容匹配器对象
Matcher matcher = pattern.matcher(rs);
//4.开始找了
while (matcher.find()) {
String rs1=matcher.group();
System.out.println(rs1);
}
}
}
最后
以上就是隐形学姐为你收集整理的JavaSE进阶8之包装类、正则表达式包装类正则表达式的全部内容,希望文章能够帮你解决JavaSE进阶8之包装类、正则表达式包装类正则表达式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复