正则表达式&&重写toString和equals&&包装类

来源:互联网 发布:php报undefined index 编辑:程序博客网 时间:2024/05/21 07:06

一.  正则表达式:

1.描述一种格式,去验证一串字符串看是否满足这个格式

[abc]                            a、b、c中任意一个字符

<^abc>                        除abc之外任意

[a-z]                             a-z中任意一个

[a-zA-Z0-9]                 a-zA-Z0-9中任意、

[a-z&&[^bc]]             a-z除了bc

.                                    任意一个字符

任意次(*)

\d                                 任意一个数字字符[0-9]

\w                                单词字符[a-zA-Z0-9_]

\s                                  空白字符[\t \n\x0B\f\r]

\D                                 非数字字符

\W                                非单词字符

\S                                  非空白字符

X?                              表示0或1个

X*                                 表示0或任一次

X+                                 表示至少一次

X {from,end}              指定多少次

 

[abc]{0,3}                   最多三次

 

2.(abc|def) 内容是一个整体

3.      ^[abc]$    123123abc123123

         ^:开始

         $:结束\

4.matches()正则表达式匹配

二.split()

* String[] split(string regex)

* 将当前字符串按照满足正则表达式的部分进行拆分

  然后将拆分之后的部分返回

       String str = "abc123def456ghi789jkl";

              String[]str1 = str.split("[0-9]{3}");

              for (inti = 0; i < str1.length; i++) {

                     System.out.println(str1[i]);

              }

正则中如果在中间有数字,则会变为空字符串,如果放在末尾之后,就不会继续进行匹配。

 

图片的重命名:

String imgName = "1.jpg";

              String[]str = imgName.split("\\.");

              System.out.println(str.length);

              str[0] = "b04544e5544";

              StringnewImg = System.currentTimeMillis()+"." + str[1];

              System.out.println(newImg);

三.replaceAll

将给定的字符串中满足正则表达式的内容替换为给定字符串内容

              String str = "abc123def456ghi789jk";

              Strings = str.replaceAll("\\d+", "#NUMBER#");

        System.out.println(s);

四.Object

       耦合:调用者和被调用者的依赖程度

       面向接口编程,不是从人的角度去看,是从职业的角度去看

为什么要继承自Object()?

      

五.toString

一般意义上来说toString在Object中并没有实际意义,所以在类中经常会重写

        //通常需要使用一个类的toString方法时

        //重写toString

        //该方法返回一个字符串,该字符串没有具体格式要求

        //但是原则上应当包含当前对象的属性信息

        //若不重写该方法,使用Object提供的,原始方法中返回类名@地址

//通常没意义.

六.equals

      

// 当我们使用一个类的equals方法做比较时,该类就应当重写这个方法,因为Object

// 提供的equals没有实际意义

//equals是用来比较两个内容是否一致。所以比较的是两个对象的属性内容,但是不一定要求属性必须完全一致,

//这样看实际开发来定

双等于不是恒等成立的,重建新的对象之后就false

但是equals即使是不同的对象,比较只比较里面的结果

 

七.Integer&&BigDecimal

包装类是不可变类,

charèCharacter

//包装类

// 由于基本类型没有面向对象的特性,所以不能直接参与面向对象的开发,为了解决这个问题,java8歌基本类型提供了包装类

//包装类可以以对象的形式表示一个基本类型的值

// 其中六个数字类型的包装类继承自Number

//number定义了数字类型包装类的共同行为

//允许将其表示的基本类型数据在不同的数字类型直接互相转换

 

 

Integer i = Integer.valueOf(123);

              Integerj = Integer.valueOf(123);

              System.out.println(i ==j);

Integer的valueOf 相对于newInteger() 不用创建一个新对象,类似于缓存常量池,但是只缓存一个字节-128-127

 

//所有包装类支持静态方法valueOf,可以将对应的基本类型转换为包装类。推荐使用而不是直接new。

 

Integer i = Integer.valueOf(123);

              Integerj = Integer.valueOf(123);

              System.out.println(i ==j);

 

              int in =i.intValue();

可以互转

 

//所有的包装类都提供了一个静态方法:parsexxx()

//该方法可以将给定的字符串转换为对应的基本类型

//数字,但是前提是该字符串的内容必须能正确描述该基本类型可以保存的数据,否则会抛出异常

String str = JOptionPane.showInputDialog("输入");

              inti = Integer.parseInt(str);

              System.out.println(i+2);

 

Java4之后进行了自动拆装箱

Integer i = Integer.valueOf(123);==Integeri=123;

 

即:基本类型和引用类型之间可以直接互相赋值,无需关注之间的转换,而编译器在编译源程序时会自动补充代码完成他们之间的转换工作,所以自动拆装箱是编译器认可,而不是虚拟机认可。

0 0
原创粉丝点击