正则表达式
只关注格式!
[abc...]就表示一个字符 ! 是[]中的任意一个字符!
[^abc..]除了abc..之外的人意义个字符
[a-z]a到z中一个字符
[a-zA-Z0-9]a-z A-Z 0-9 任意个字符
[a-z&&[^bc]]a-z 中除了bc
.表示任意一个字符 书写的时候一定要分清左斜线还是右斜线
\d任何一个数字字符相当[0-9]
\w 单词字符 相当与[a-zA-Z0-9]还有_
\s空白字符 空格 缩进键
\D 不是数字的字符
\W 不是字符
\S 不是空白字符
X?表示0个或者1次
X+ 表示一次以上包括一个
X* 表示任意次
X{n} 出现n次 ,n个字符
X{3,6}三到六之间个字符 也可一{3,}三次以上 {0,3}最多三次 上下限不能出现负数
分组 (abc) 中间的内容是个整体 必须出现abc
边界匹配 ^代表字符串开始
$表示字符串结束
匹配 str.matches(regex);
split String[] split(String regex)
见当前字符串中满足正则表达式的部分切掉 ,保留剩下得内容!
String arr = str.split(regex)
replaceFirst 替换第一个满足正则表达式的字符
replaceAll String replaceAll(String regex,String replacement)
将当前字符串中满足正则表达式的部分替换成为给定的字符串!
str.replceAll("[0-9]+","#")
和谐用语
先写一个正则表达式的不和谐用语
String regex = "(wqnmlgb|sb|cnm|cao|nc)";
String message="wqnmlgb!你怎么这么nc!cao!cnm!";
message=message.replaceAll(regex,"***");
Object
Object 类的toString方法显示的是包名.类名.哈希值 用来找这个类在内存中的位置
一般都要重写toString方法
何时重写呢
通常只要会在程序中使用当前类实例的toString就要重写
equals()方法 重写方法
重写Object定义的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;
}
equals == 的区别
== 用于比较变量的值,地址。可以应用于任何类型,如果用于引用类型,比较的是两个引用变量中存储的值
(地址信息)判断两个变量是否指向相同的对象
equals 是Object的方法 ,重写以后 可以用于比较两个对象的内容是否“相等”
Object默认的equals方法比较规则等于== 所以一般重写!!
包装类
为了解决基本数据类型不能参与面向对象开发的这个问题
其中6个表示数字类型的包装类都继承自Number
Number是抽象类 提供了可以将数字在不同类型间相互转化的方法 ,但通常都是短整型向长整形转
例如:short->int
例如 Double d = new Double(1.2);
d.**Value();方法 用于把包装类转换成基本类型! 有一个接收值!
int i = d.intValue();
基本类型转换为包装类的推荐方式
使用静态方法valueOf()
Interger i1 = new Interger(1);new的方法
推荐 Interger i1 = Interger.valueOf(1); 只 缓存了了1个字节
但是double 不缓存
包装类的实际用途!!
数字类型包装类都支持两个常量!
MAX_VALUE 对应的基本类型的最大取值 int imax = Integer.MAX_VALUE
MIN_VALUE 对应的基本类型的最小取值 int imin = Integer.MIN_VALUE
最常用的 !!!包装类斗志迟疑个静态方法parseXXX(String str)
可以将字符串转换成对应的基本类型
前提是,该字符串所描述的是基本类型!
String str = "123";
int i = Integer.parseInt(str);
double d = Double.parseDouble(str);
只关注格式!
[abc...]就表示一个字符 ! 是[]中的任意一个字符!
[^abc..]除了abc..之外的人意义个字符
[a-z]a到z中一个字符
[a-zA-Z0-9]a-z A-Z 0-9 任意个字符
[a-z&&[^bc]]a-z 中除了bc
.表示任意一个字符 书写的时候一定要分清左斜线还是右斜线
\d任何一个数字字符相当[0-9]
\w 单词字符 相当与[a-zA-Z0-9]还有_
\s空白字符 空格 缩进键
\D 不是数字的字符
\W 不是字符
\S 不是空白字符
X?表示0个或者1次
X+ 表示一次以上包括一个
X* 表示任意次
X{n} 出现n次 ,n个字符
X{3,6}三到六之间个字符 也可一{3,}三次以上 {0,3}最多三次 上下限不能出现负数
分组 (abc) 中间的内容是个整体 必须出现abc
边界匹配 ^代表字符串开始
$表示字符串结束
匹配 str.matches(regex);
split String[] split(String regex)
见当前字符串中满足正则表达式的部分切掉 ,保留剩下得内容!
String arr = str.split(regex)
replaceFirst 替换第一个满足正则表达式的字符
replaceAll String replaceAll(String regex,String replacement)
将当前字符串中满足正则表达式的部分替换成为给定的字符串!
str.replceAll("[0-9]+","#")
和谐用语
先写一个正则表达式的不和谐用语
String regex = "(wqnmlgb|sb|cnm|cao|nc)";
String message="wqnmlgb!你怎么这么nc!cao!cnm!";
message=message.replaceAll(regex,"***");
Object
Object 类的toString方法显示的是包名.类名.哈希值 用来找这个类在内存中的位置
一般都要重写toString方法
何时重写呢
通常只要会在程序中使用当前类实例的toString就要重写
equals()方法 重写方法
重写Object定义的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;
}
equals == 的区别
== 用于比较变量的值,地址。可以应用于任何类型,如果用于引用类型,比较的是两个引用变量中存储的值
(地址信息)判断两个变量是否指向相同的对象
equals 是Object的方法 ,重写以后 可以用于比较两个对象的内容是否“相等”
Object默认的equals方法比较规则等于== 所以一般重写!!
包装类
为了解决基本数据类型不能参与面向对象开发的这个问题
其中6个表示数字类型的包装类都继承自Number
Number是抽象类 提供了可以将数字在不同类型间相互转化的方法 ,但通常都是短整型向长整形转
例如:short->int
例如 Double d = new Double(1.2);
d.**Value();方法 用于把包装类转换成基本类型! 有一个接收值!
int i = d.intValue();
基本类型转换为包装类的推荐方式
使用静态方法valueOf()
Interger i1 = new Interger(1);new的方法
推荐 Interger i1 = Interger.valueOf(1); 只 缓存了了1个字节
但是double 不缓存
包装类的实际用途!!
数字类型包装类都支持两个常量!
MAX_VALUE 对应的基本类型的最大取值 int imax = Integer.MAX_VALUE
MIN_VALUE 对应的基本类型的最小取值 int imin = Integer.MIN_VALUE
最常用的 !!!包装类斗志迟疑个静态方法parseXXX(String str)
可以将字符串转换成对应的基本类型
前提是,该字符串所描述的是基本类型!
String str = "123";
int i = Integer.parseInt(str);
double d = Double.parseDouble(str);