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);    }}
原创粉丝点击