java api 02

DAY02

  1. 内容回顾:

String

StringBuilder

日期操作:

     Date:getTime()  setTime(long ms)

     System.currentTimeMills() – long ms

     Caledar:

           对象的创建:

  1. 阳历
  2. getInstance();

方法:

    get(int Field)

  1. .日期操作(下)
    1. SimpleDateFormat

日期转换类: 在指定格式的字符串的日期表示和日期对象之间进行转换

 

创建对象:

     SimpleDateFormat sdf = new SimpleDateFormat(“格式”)

    

     yyyy-MM-dd  HH:mm:ss

     2017-12-04  09:26:50

 

使用:转换

 

     String   --- >Date       parse(String) - Date

Date  --à String   format(Date) – String

 

 

 

案例:计算你从出生到今天活了多少天?

     //计算出到今天为止,你活了多少天

           /*

            * 思路:

            *   1.计算出今天到历元的时间差

            *   2.计算出你的生日到历元的时间差

            *   3,两者相减  单位ms --- 变成天

            */

          

          

          

           //今天的日期

           Date today = new Date();

           long todayMs = today.getTime();

          

           //你出生的日期    yyyy-MM-dd HH:mm:ss

           String birth = "1997-12-4 12:12:12";

          

           SimpleDateFormat sdf =

                      new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

          

           Date birthday = sdf.parse(birth);

          

           long birthMs = birthday.getTime();

          

           long minus = todayMs - birthMs;

           long day = minus/1000/60/60/24;

           System.out.println("恭喜你了,你你已经成功活了"+day+"天");

          

     }

方法:

    GET方法:

          get(int Field)

          getTime()

          getTimeInMills()

         

SET方法:

          set(int Field,int value)

   setTime(Date date)

 

 

   add(int field,int amount)

 

          getActualMaximum(int field)

 

 

练习:

   查看3年2个月零5天以后的那周的周一?

                

    获取任意一年的二月有多少天

 

 

 

 

 

 

 

 

 

  1. Object类
  • 在Java类继承结构中,java.lang.Object类位于顶端;
  • 如果定义一个Java类时没有使用extends关键字声明其父类,则其父类默认为 java.lang.Object 类;
  • Object类型的引用变量可以指向任何类型对象。

 

 

 

方法:

   toString():

         System.out.print(任意对象),输出内容是?  为什么?

 

         Object类中的重要方法,用于返回对象值的字符串表示:   类名@散列码

 

 

         如果不重写toString方法,将使用Object的toString方法

        

         强烈建议为自定义的每一个类增加toString方法,toString方法是非常有用的调试工具;

  1. 格式大多数遵循   “ 类的名字[ 值 ]“

 

 

Java 提供的API几乎都重写了 toString()

  包括: String StringBuilder Date …..

 

 

 

  1. equals()

在Object类中,这个方法判断两个对象是否具有相同的引用,即是否为相同的对象;

 

在实际应用中,一般需要重写该方法,通过比较对象的成员属性,使该方法更有意义  -- 建议重写

           案例:Point类中重写此方法,当X,Y坐标相等时,说明两个点对象相等(是同一个点)

 

 

String类中的equals()方法

 

 

==和equals比较:

 

 

 

 

 

 

  1. 基本数据类型的包装类

问题:  int i = 4;    如何得到一个String类型的i的表示?  

         String str = 23;    是否可以将此字符转换为int类型得到int类型的表示?

 

 

JAVA 中8种基本类型都有一个与之对应的类,即包装类(wrapper)。

 

 

基本类型

包装类型

父类

int

java.lang.Integer

java.lang.Number

long

java.lang.Long

java.lang.Number

double

java.lang.Double

java.lang.Number

short

java.lang.Short

java.lang.Number

float

java.lang.Float

java.lang.Number

byte

java.lang.Byte

java.lang.Number

char

java.lang.Character

java.lang.Object

 boolean

java.lang.Boolean

java.lang.Object

 

包装类是不可变类,在构造了包装类对象后,不允许更改包装在其中的值;

包装类是final的,不能定义他们的子类。

 

 

 

 

    1.     Number类

抽象类 Number 是 Byte、Double、Float、Integer、Long 和 Short 类的父类;

 

    Number类中抽象方法在子类中的实现以及使用:

 

   

 

    1. Integer类的常用方法:
  1. static  parseInt(String) – int
  2. toString() – String
  3. static valueOf(int i) – Integer
  4. intValue() - int
    1. Double类的常用方法:
  1. static parseDouble(String) – double
  2. toString() – String
  3. valueOf(double d) – Double
  4. doubleValue() - double

 

 

 

    1. 自动装箱和拆箱

从Java 5.0版本以后加入到了 autoboxing功能

自动“拆箱”和“装箱”是依靠编译器在编译期的“预处理”(优化)工作

 

 

 

  1. 正则表达式     
  • 正则表达式是一串特定字符,组成一个“规则字符串”,这个“规则字符串”是描述文本规则的工具。正则表达式就是记录文本规则的代码。

 

    1. 字符集

              

正则表达式

说明

[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以外的任意一个字符,其中&&表示“与”的关系

    1. 预定义字符集:

              

正则表达式

说明

.

任意一个字符

\d

任意一个数字字符,相当于[0-9]

\w

单词字符,相当于 [ a-zA-Z0-9_ ]

\s

空白字符,相当于[ \t\n\r ]

\D

非数字字符

\W

非单词字符

\S

非空白字符

              

    1.         数量词:

               可以利用数量词约定字符出现的次数

 

              

正则表达式

说明

X?

表示0个或1个X

X*

表示0个或任意多个X

X+

表示1个到任意多个X(大于等于1个X)

X{n}

表示n个X

X{ n,}

表示n个到任意多个X(大于等于n个X)

X{ n , m }

表示n个到 m 个 X

 

练习:

        

               1.手机号码的验证(1,3,4,5,7,8)

 

               2.校验QQ邮箱(5-11位数字@qq.com)

 

 

    1. 分组:():

() 圆括号表示分组,可以将一系列正则表达式看做一个  整体,

        

   练习:

  • 检索手机号码: +86 13838389438
    • +86  可有可无
    • +86与后面的号码之间空格可以没有或者有多个
    • 电话号码为11位数字

 

    1. 边界匹配:

^ 匹配开始,$ 匹配结束

        

   案例:匹配8-10个\w   两种写法的区别

 

 

    1. String正则API:

matches(String regex)

 

 

split(String regex)

 

   案例:

         对一个字符串进行分割,分割符为,加上多个空格

 

 

replaceAll(String regex,String replacement)

 

   案例:

1.对一个字符串中的所有数字进行替换

         2.敏感字符过滤

 

 

问题:

   正则表达式中中文如何表示?

               Unicode编码来表示中文

               [\u4e00-\u9af5]

 

作业:

   1.验证输入的是不是2015-12-12格式 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值