RE:JAVA学习-认识正则表达式、Object类及包装类
来源:互联网 发布:java开发笔试题及答案 编辑:程序博客网 时间:2024/06/11 09:26
一正则表达式:
1.作用:对字符串数据进行一些复杂的匹配 查找 替换
2.字符合集:
正则表达式 说明
[abc] a b c中任意一个字符
[^abc] 除了 a b c的任意字符
[a-z] a b c….z中的任意一个字符
[a-zA-Z0-9] a~z,A~Z,0~9中的任意一个字符
[a-z&&[^bc]] a~z中除了b和c以外的任意一个字符(&&与)
3.预定义字符集:
正则表达式 说明
. 任意一个字符
\d 任意一个数字字符,相当于[0-9]
\w 单词字符,相当于[a-zA-Z0-9]
\s 空白字符,相当于[\t\n\xOB\f\r]
\D 非数字字符
\W 非单词字符
\S 非空白字符
4.数量词:
正则表达式 说明
X? 表示0个或者1个X
X* 表示0个或任意多个X
X+ 表示1个到任意多个X(>=1)
X{n} 表示n个X
X{n,} 表示n个到任意多个X(>=n)
X{n,m} 表示n个到m个X
5.分组:
5.1>表示方法:()
5.2>作用:将一系列正则表达式看做一个整体(分组时可以使用”|”表示”或”关系)
6.边界匹配:
6.1> ^ 代表字符串开始
6.2> $ 代表字符串结束
7.String正则API(以下方法的参数regex都表示符合正则表达式)
7.1>matches: boolean matches(String regex) 使用给定的正则表达验证当前字符串是否满足格式要求 满足则返回true (需要注意,给定的正则表达式无论是否加了边界符---(^...$) 都是进行全匹配验证) 邮箱验证: String s="[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z]+)+"; boolean match=email.matches(s);
public class String_matches { public static void main(String[] args) { /* * 邮箱的正则表达式: * [a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z]+)+ * * */ Scanner scan=new Scanner(System.in); String email=scan.nextLine().trim(); String s="[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z]+)+"; boolean match=email.matches(s); if(match){ System.out.println("是邮箱"); }else{ System.out.println("不是邮箱"); } }}
7.2>split String[] split(String regex) 将当前字符串按照给定正则表达式满足的部分进行拆分 将拆分出来的各部分内容存入一个字符串数组并返回 生成图片名: String imgName="asdw21wd.jpg"; String name[]=imgName.split("\\."); imgName=System.currentTimeMillis()+"."+name[1]; System.out.println(imgName);
public class String_split { public static void main(String[] args) { String imgName="asdw21wd.jpg"; String name[]=imgName.split("\\."); imgName=System.currentTimeMillis()+"."+name[1]; System.out.println(imgName); }}
7.3>replaceAll String replaceAll(String regex,String str) 将给定字符串中满足正则表达式的部分替换为指定字符串 将英文部分替换"#CHAR#" String str="aks123jkla14b1kn31k"; str=str.replaceAll("\\D+","#CHAR#"); System.out.println(str);
二.Object
1>Object类型的引用变量可以指向任何类型对象
2>toString方法:
通常一个类的toString被使用,这个toString就应当被重写
原则上返回的字符串中应当包含给定对象属性信息
public String toString(){ return "("+x+","+y+")"; }
3>equals方法:
通常使用一个类的equals方法就要重写它(java API提供的类基本都重写了.我们自己定义的类要自行重写)
equals方法的作用是比较两个对象”像不像”,即:内容是否一致
public boolean equals(Object obj){
if(obj==null){
return false;
}
if(obj==this){
return true;
}
if(obj instanceof Point){
Point p=(Point)obj;
return p.x==this.x&&p.y==this.y;
}
return false;
}
/** * 该类的每一个实例用于表示直角坐标系中的一个点 * */public class Point { private int x; private int y; /* * 通常一个类的toString被使用,这个toString就应当 * 被重写 * toString返回的字符串没有格式要求,按实际开发需求 * 而定 * 原则上返回的字符串中应当包含给定对象属性信息 */ public String toString(){ return "("+x+","+y+")"; } /** * 通常使用一个类的equals方法就要重写它 * java API提供的类基本都重写了.我们自己定义的 * 类要自行重写 * equals方法的作用是比较两个对象"像不像",即:内容 * 是否一致 */ public boolean equals(Object obj){ if(obj==null){ return false; } if(obj==this){ return true; } if(obj instanceof Point){ Point p=(Point)obj; return p.x==this.x&&p.y==this.y; } return false; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; }}
/** * 用来测试Point重写Object的相关方法 * */public class TestPoint { public static void main(String[] args) { Point p=new Point(); p.setX(1); p.setY(1); /* * Object定义了toString方法,该方法返回当前 * 对象的句柄,即:类名@地址 * 通常情况下,我们需要使用一个类toString方法 * 时就应当重写该方法,返回一个更有意义的字符串 */ String str1=p.toString(); //句柄// System.out.println(str); /* * System.out.println(Object o) * 该方法输出给定对象toString返回的字符串到 * 控制台 */ System.out.println(p); Point p2=new Point(); p2.setX(1); p2.setY(1); System.out.println(p2); System.out.println(p==p2); System.out.println(p.equals(p2)); String str2=p2.toString(); System.out.println(str1.equals(str2)); }}
三.包装类
1>所有基本类型都有一个对应的包装类(包装类是不可变类)
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
2>常用方法:
Integer i2=Integer.valueOf(1);
int i3=Integer.valueOf(1);
System.out.println(i2.intValue());
int imax=Integer.MAX_VALUE;
int imin=Integer.MIN_VALUE;
包装类有一个静态方法:parseXXX(String str) 将给定的字符串转换为对应的基本类型值(字符串表示的内容是该基本类型可以保存的值) String str="123"; int i=Integer.parseInt(str); double d=Double.parseDouble(str);
public class Integer_parseInt { public static void main(String[] args) { String str="123"; int i=Integer.parseInt(str); System.out.println(i); double d=Double.parseDouble(str); System.out.println(d); }}
- RE:JAVA学习-认识正则表达式、Object类及包装类
- 正则表达式 、 Object 、 包装类
- 正则表达式、Object、包装类
- 【JavaSE】day02_正则表达式 、 Object 、 包装类
- SE01 Unit02 正则表达式 、 Object 、 包装类
- Java基础进阶_day06_(Object,常用类,包装类,正则表达式)
- 包装类 正则表达式
- java基础复习之通用API(Object,String,正则表达式,包装类,日期)
- python re 模块及正则表达式调用认识(1)
- python re 模块及正则表达式调用认识 (2)
- 包装类转化、正则表达式
- 包装类和正则表达式
- Java基础(十)——Sting类及包装类、其它对象、正则表达式
- Sting类及包装类、其它对象、正则表达式
- 4、认识正则表达式和re库
- 关于正则表达式和包装类(Java)
- Python re正则表达式学习
- 正则表达式re模块学习!
- 贪心、动态规划之删数问题2072
- F12 console的用法,以及如何debug程序?
- 计蒜客-三值排序(贪心)
- 内联函数与宏定义
- (reading)A Hierarchical Approach for Generating Descriptive Image Paragraphs
- RE:JAVA学习-认识正则表达式、Object类及包装类
- Spring Data MongoDB 使用group和unwind实现对数组数据进行简单统计
- Hard challenge
- spark sql对seq值的包装
- XYNUOJ 1020 求闰年
- FZU 1901 Period II(KMP)
- 198. House Robber (简单dp)
- 在不root手机的情况下读取Data目录下的文件
- HDU 6095 Rikka with Competition(思维)