Java String类、正则表达式、Object类型、包装类、内部类、日期时间

1.API的使用
    1). API:应用程序编程接口,就是开发文档。
    2). javaAPI内包含了大量的已经开发好的功能(被封装到类型中),含有常用的API(字符串操作,集合操作,文件操作,IO流,线程,异常等)。
    3).常用的包:
java.lang包:内部含有常用的类型,不需要导入包,可以直接使用
String类型。
java.util包:常用的类型,Scanner,日期Date,Canlender。
java.net包: socket套接字等
java.io:输入输出流等。
java.math:  Math类。
2.String类型

    1)特点:类型是用final修饰的,底层是字符数组和其对数组的一 些操作。创建出来的对象不可变。但是声明的变量可以指向不同的对象。

    2)因为是java语言中最常用的一种类型,所以有一定的优化,在 使用String类型,提供了字符串常量池:

常量池:在给字符串的变量赋值时,先去常量池中寻找这个对象,如果有就把这个对象的地址信息给变量,如果找不到,则会新建一个对象。有利于对象的可重用性。
这些对象:必须是字符串字面量,或者是字面量之间的拼接操作。
    3) String常用的API
indexOf();
lastIndexOf();
length():返回的字符串的长度。
数组中有length:叫属性,集合中有size()
substring():截取子字符串
toUpperCase():将字符串中英文字母变大写
toLowerCase():将字符串中英文字母变小写

…………

3.正则表达式:是一个有规律的,有特定意义的一串字符,通常用来进行匹配,查找等操作。
    1)常用符号:
*:任意字符。
[abc]:表示abc中的任意一个字母
[^abc]:表示除了abc之外任意字符
[0-9]:表示0-9中的任意一个数字
[a-z]:表示a-z中的任意一个字母
[0-9a-zA-Z_]:表示这些字符中的任意一个     
[a-z&&[^abc]]:表示a-z中除了abc之外的任意一个字母
[\d]:表示0-9中的任意一个数字
[\D]:表示非数字中任意一个字符
[\w]:表示单词字符中任意一个 相当于[0-9a-zA-Z_]
[\W]:除了单词字符外的任意一个  
\s:表示[\n\t\r\f],空白
\S:非空白
\d*:表示有0个或0个以上数字
\d?: 表示没有或者有1个的数字

…………

    2)

用()进行分组
():表示分组
"(186)|(137)\d{8}":表示匹配186的手机号,或者137的手机号
      "^":表示从头开始检查字符串是否匹配正则表达式
"$": 表示检查字符串的结尾是否匹配正则表达式
      "^[\d]{8}$":表示从头到尾检查字符串是否完全匹配
在写字符串时,想表达"\"这个字符,必须在前面添加转义字符
    转义字符:\
有一些特殊字符都需要被转义才行。
4.String类型与正则表达式
    String支持正则表达式
    1) matchs(String  reg):参数为正则表达式,用来判断字符串是否 匹配正则表达式,匹配:返回true,不匹配:返回false

    2) replaceAll(String reg,String new):作用是使用new这个字符串替换字符串中符合reg的子串.

    3) split(String reg):用来拆分字符串:用符合正则表达式的子字 符串拆分成字符串数组。返回值类型是字符串数组。   

如果字符串的首位就符合正则表达式,会拆出一个空字符串””元素,在字符串的末尾如果符合了,不会拆分出一个空字符串元素

5.Object类型

    1). Object:是所有引用类型的父类,在引用类型的顶端。它的引用变量可以指向任何类型的一个对象。
    2). Object类型中的常用方法:
(1) toString():在Object类型中,方法的返回为“类全名@散列码”。
    在自定义类型时,如果不手写继承Object,系统会默认提供继承Object,toString()方法就会被继承。继承后的方法返回的字符串没有意义。我们应该重写toString():用来描述new出来的对象的信息。
    重写toString():默认规则如下:
"类全名[属性名=属性值,属性名=属性值]" 
    toString():当想输出显示对象信息时,会默认调用这个方法。
        (2) equals():在Object类型中,equals()相当于==,比较的是地址,是不是同一个对象。在大多数情况下,我们不比较是不是同一个对象,而应该比较这两个对象的内容是否一样。自定义的类继承过来的方法就不满足要求了。应该重写equals() 。
重写规则: 
public boolean equals(Object obj){}
①应该判断传进来的参数是不是null
②判断传进来的参数是不是自己
      ③判断传进来的参数是不是本类型

                如果是同一类型,再去比较属性。

6.包装类

    1). Java语言是面向对象的语言,而八大基本数据类型的值不是对象,当我们想把这些值当成对象时,就需要使用包装类,功能就是把基本数据类型的数值转换成对象。
byte---java.lang.Byte float--java.lang.Float
short---java.lang.Short double---java.lang.Double
int---java.lang.Integer char---java.lang.Character

long---java.lang.Long    boolean---java.lang.Boolean 

    2).常用方法:
Integer.valueOf(int val):会将int的值转换Integer类型的对象。
Double.valueOf(double val):会将double的值转换Double类型的对象。
作用:将字符串转换成包装类型。
    3).装箱操作:基本数据类型--->包装类 
intValue();       doubleValue();
Integer num = 5;--->Integer num = Integer.valueOf(5);//装箱操作
    4).拆箱操作:将包装类对象转换成相应的基本数据类型
在jdk1.5版本以后,支持自动拆箱和装箱;在做运算时,包装类 的对象都会转换成相应的基本数据类型再计算(自动拆箱)。

int a = new Integer(“5”);---->int a = new Integer(5).intValue();//拆箱操作

7.内部类

    1).定义:在类内部定义的类型。
    2).分类
(1)成员内部类:在类内部定义的,与方法并列的,是外部类的 成员。
public class Outer{
class Inner{
}
public static void main(String [] args){
}
}
(2)匿名内部类::没有名字,在方法中使用的。
interface OutInterface{}
public Outer{
public OutInterface do(){
return new OutInterface(){
};
}

}

        (3)局部内部类
public class Outer{
public OutInterface doit(final String x){
class InnerClass implements
OutInterface{
}
}
}
(4)静态内部类
public class Outer{
static class Inner{
}
}

特点:不可以使用外部类的非静态成员。

8.日期类型

    1). Date:
java.util包下的类型
获取当前系统时间的方式:
(1) Date new = new Date();//获取的是日期格式的当前 系统时间方法:
getTime():获取毫秒数。long类型
setTime(long time)
(2) System.currentTimeMillis();//获取的是距1970年1月1 日时间点的毫秒数
    2). SimpleDateFormat:

作用:通常都是用来对日期格式化,或者将字符串转 换成日期类型。

                构造器:SimpleDateFormat(String p);
p:用来定义日期格式
y:年
        M:月
        d:日
        H:24小时制的时
        h:12小时制的时
        m:分
        s:秒
        E:表示星期
        a:表示上下午(am|pm)
常用方法:
String format(Date date):将日期转换成字符串
Date parse(String str):将字符串转换日期类型
有可能会出现ParseException:转换异常(编译期间检查的 )

    3).日历类型:Calendar,是一个接口,不能实例化。

        有很多子类型最常用的是格力高里历法(大多数国家通用的历法,即我们说的阳历)。
(1)作用:是更方便的计算日期分量。
(2)获取子类型的方法
    getInstance():获取子类型,会自动划分时区。(静态方法)
    Calendar cal = Calendar.getInstance();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值