RE:JAVA学习-认识正则表达式、Object类及包装类

一正则表达式:
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);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值