正则表达式 regular expression regex 8.23
常见的正则表达方式:
一、校验数字的表达式
二、校验字符的表达式
三、特殊需求表达式
文件去看hsp的java文件
package com.mlyStudyJava.RegExp;
public class RegExp01 {
public static void main(String[] args) {
//email :regual expression == Regex
//[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+
//转义字符 \\->\ \[->[
String email ="[email protected]";
String regex ="[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
boolean match = email.matches(regex);//使用regex匹配email是否符合格式要求
if(match){
System.out.println("是正确的邮箱格式");
}else{
System.out.println("不是正确的邮箱格式");
}
}
}
正则的可视化网站 https://jex.im/regulex/#!flags=&re=^(a|b)*%3F%24
package com.mlyStudyJava.RegExp;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
/**
* String replaceAll(String regex,String s):替换
* 将当前字符串中满足正则表达式(reg)的部分给替换为给定的字符串(s)
*/
public class RegExp02 {
public static void main(String[] args) {
String line ="abc123def456ghi78";
line = line.replaceAll("[0-9]+",",");
System.out.println(line);
}
}
package com.mlyStudyJava.RegExp;
import java.util.Arrays;
public class RegExp03 {
public static void main(String[] args) {
String line ="abc123def456ghi78b";
String[] data = line.split("[0-9]+");//按数字拆分,把数字拆掉。
// for (int i = 0; i <data.length ; i++) {
// System.out.println();
// }
System.out.println(Arrays.toString(data));
line = "123.456.78";
data =line.split("\\.");
System.out.println(Arrays.toString(data));
line = ".123.456..78.......";
data =line.split("\\.");
/**
* 若开始是. 那么第一个元素是空字符串
* 连续2个. 中间也多个空字符串
* 末尾连续.. 空字符串被忽略
*/
System.out.println(Arrays.toString(data));
}
}
构造器 类型私有,get set公开调用,需要创建构造器与类同名。不同包也可以导入包
package com.mlyStudyJava.RegExp;
import java.util.Objects;
public class Point {
private int x;
private int y;
//构造方法
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Point point = (Point) o;
return x == point.x &&
y == point.y;
}
@Override
public int hashCode() {
return Objects.hash(x, y);
}
@Override
public String toString() {
return
"x=" + x +
", y=" + y ;
}
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;
}
//alt+insert ->get and set
//command +n
}
Object
Object:对象
-
是所有类的鼻祖,所有的类直接或间接继承了Object,万物皆对象,为了多态
-
Object中有两个经常被派生类重写的方法:toString() 和equals()
-
调用Object类的toString()时默认范围:类的全程@地址,没有参考意义。所以会重写toString()返回字符串
-
String、StringBuilding 都重写了toString来返回字符串
-
package com.mlyStudyJava.Object;
import com.mlyStudyJava.RegExp.Point;
//不同包下的类
/**
* 调用Object类的equals() ,内部还是要用== 比较地址
* 所以要比较属性值
*/
public class Object02 {
public static void main(String[] args) {
Point p1 = new Point(100,200);
Point p2 = new Point(100,200);
System.out.println(p1 == p2);//比较的是地址
System.out.println(p1.equals(p2));
}
}
包装类
package com.mlyStudyJava.Wrapper;
public class Integer01 {
public static void main(String[] args) {
Integer i1 = new Integer(5);
Integer i2 = new Integer(5);
System.out.println(i1==i2);//false == compare address
System.out.println(i1.equals(i2));//重写了toString
System.out.println("==================");
//Integer.valueOf()会复用-128-127 的数据 valueof()更多一点
Integer i3 = Integer.valueOf(5);
Integer i4 = Integer.valueOf(5);
System.out.println(i3==i4);
System.out.println(i3.equals(i4));
System.out.println("==================");
Integer i5 = Integer.valueOf(500);
Integer i6 = Integer.valueOf(500);
System.out.println(i5==i6);
System.out.println(i5.equals(i6));
}
}
package com.mlyStudyJava.Wrapper;
public class Integer02 {
public static void main(String[] args) {
//Integer i = Integer.valueOf(5);
//自动装箱
Integer i =5;
//自动拆箱 int j = i. intValue();
int j =i ;
}
}
package com.mlyStudyJava.Wrapper;
public class Integer03 {
public static void main(String[] args) {
/**
* 演示包装类的常用操作
* 1.通过包装类获取基本类型的取值范围
*/
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println("int的最大值为:"+max+",最小值为:"+min);
long max1 =Long.MAX_VALUE;
long min1 =Long.MIN_VALUE;
System.out.println("long的最大值为:"+max1+",最小值为:"+min1);
//2.包装类可以将字符串类型转换为对应的基本类型-------需要掌握
String s1 = "38";
int age = Integer.parseInt(s1);
System.out.println(age);//string->int
String s2 ="123.456";
double price = Double.parseDouble(s2);
System.out.println(s2);//string->double
}
}
学习的思考梳理前2个月自学的经验:
利用月考梳理前面基础的知识,梳理好上传到博客私人可见,也是记录自己完成135天的代码训练的成果,做出项目。自己的基础太不牢固,导致后续无法学习SSM框架搭建。
() ->[]-> {} 小括号,中括号,大括号。
狂神的java笔记 ->mly的每天学习博客 在达内培训 4个半月的笔记
8.16-8.23 上传每日的笔记
博客园
只有自己敲出来的代码才是自己的。只上传自己敲出来的
复制黏贴的 要备注
尚硅谷也好,韩老师的课程也好,光有好课程,不跟着敲和思考。或者光听懂也没用。总归知识是无限的,你只要把当前能用的用好,基本概念的使用跟着老师去敲就行。哪怕不理解,能用就行,暂时不会背。等真正自己把前后端的项目做出来,基本功可以过关了,技术就过关可以上班,独立开发项目。
除了上课跟老师敲 同时基本课程也要敲
动手去做题
建项目的规范性->建包-子包-子类
包名的命名规范性
r2coding 国外的课程 课本已经放在桌面上。
基本课程:
自考的课程
java语言
数据结构与算法
数据库原理
计算机组成原理
计算机网络
java语言
c++
离散数学
拓展题:
1.提取字符串
K-V split
?-> &
-
在给定的字符串中 生成4位验证码
charat 和for循环