JavaSE_day9_常用API_Object类_String类_StringBuffer类_正则表达式_Date类_DateFormat类_Calendar类_基本数据类型包装类

1.Object类

是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object

方法:

equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

例://根据Person类的属性重写toString方法

public String toString() {

return "Person [age=" + age + "]";

}

在输出语句中,写的是一个对象,默认调用对象的toString方法:例:Person  p=new Person();   System.out.println(p);

输出的就是toString重写的方法

2.String类

String是常量,它们的值一旦创建不能更改,其实就是说一旦这个字符串确定了,那么就会在内存区域中就生成了这个字符串。字符串本身不能改变,但str变量中记录的地址值是可以改变的。

String s3 = "abc";

String s4 = new String("abc");

System.out.println(s3==s4);//false,比较地址

System.out.println(s3.equals(s4));//true,比较字符串

构造方法中的两个:

public String(byte[] bytes,int offset,int length) 

bytes - 要解码为字符的 byte(

例:byte[]bytes={97,98,99};
        String s=new String(bytes);
        System.out.println(s);//输出的是abc

offset - 要解码的第一个 byte 的索引

length - 要解码的 byte 数

public String(char[] value)

例:  char[]char1={'a','b','c'};
        String s=new String(char1);
        System.out.println(s);//输出a,b,c

统计大写字母,小写字母,数字的个数

package com.sh.day08;

public class Test01 {
	public static void main(String[] args) {
		count();
	}
	//统计字符串里的大写字母,小写字母,和数字
	public static void count(){
		String str="ABTIii222ImsncjsFfFFF555";
		int upper=0;
		int lower=0;
		int number=0;
		for (int i = 0; i < str.length(); i++) {
			char c=str.charAt(i);
			//找到大写字母
			if (c>=65&&c<=90) {
				upper++;
			} else if(c>=97&&c<=122){
				lower++;
			}else if (c>=48&&c<=57) {
				number++;
			}
		}
		System.out.println("大写字母的个数"+upper);
		System.out.println("小写字母的个数"+lower);
		System.out.println("数字的个数"+number);
	}
}

3.StringBuffer类

字符串缓冲区支持可变的字符串

StringBuffer是个字符串的缓冲区,即就是它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作

4.正则表达式

正则表达式:regular expression  简写regex

是一个字符串,使用单个字符串来描述,用来定义匹配规则,匹配一系列符合某个语法规则的字符串,在开发中,通常被用来检索,替换符合某个规则的文本

正则表达式的匹配规则

字符:x

含义:代表的是字符x

例如:匹配规则为 "a",那么需要匹配的字符串内容就是 ”a”

字符:\\

含义:代表的是反斜线字符'\'

例如:匹配规则为"\\" ,那么需要匹配的字符串内容就是 ”\”

字符:\t

含义:制表符

例如:匹配规则为"\t" ,那么对应的效果就是产生一个制表符的空间

字符:\n

含义:换行符

例如:匹配规则为"\n",那么对应的效果就是换行,光标在原有位置的下一行

字符:\r

含义:回车符

例如:匹配规则为"\r" ,那么对应的效果就是回车后的效果,光标来到下一行行首

字符类:[abc]

含义:代表的是字符a、b 或 c

例如:匹配规则为"[abc]" ,那么需要匹配的内容就是字符a,或者字符b,或字符c的一个

字符类:[^abc]

含义:代表的是除了 a、b 或 c以外的任何字符

例如:匹配规则为"[^abc]",那么需要匹配的内容就是不是字符a,或者不是字符b,或不是字符c的任意一个字符

字符类:[a-zA-Z]

含义:代表的是a 到 z 或 A 到 Z,两头的字母包括在内

例如:匹配规则为"[a-zA-Z]",那么需要匹配的是一个大写或者小写字母

字符类:[0-9]

含义:代表的是 0到9数字,两头的数字包括在内

例如:匹配规则为"[0-9]",那么需要匹配的是一个数字

字符类:[a-zA-Z_0-9]

含义:代表的字母或者数字或者下划线(即单词字符)

例如:匹配规则为" [a-zA-Z_0-9] ",那么需要匹配的是一个字母或者是一个数字或一个下滑线

预定义字符类:.

含义:代表的是任何字符

例如:匹配规则为" . ",那么需要匹配的是一个任意字符。如果,就想使用 . 的话,使用匹配规则"\\."来实现

预定义字符类:\d

含义:代表的是 0到9数字,两头的数字包括在内,相当于[0-9]

例如:匹配规则为"\d ",那么需要匹配的是一个数字

预定义字符类:\w

含义:代表的字母或者数字或者下划线(即单词字符),相当于[a-zA-Z_0-9]

例如:匹配规则为"\w ",,那么需要匹配的是一个字母或者是一个数字或一个下滑线

边界匹配器:^

含义:代表的是行的开头

例如:匹配规则为^[abc][0-9]$ ,那么需要匹配的内容从[abc]这个位置开始, 相当于左双引号

边界匹配器:$

含义:代表的是行的结尾

例如:匹配规则为^[abc][0-9]$ ,那么需要匹配的内容以[0-9]这个结束, 相当于右双引号

边界匹配器:\b

含义:代表的是单词边界

例如:匹配规则为"\b[abc]\b" ,那么代表的是字母a或b或c的左右两边需要的是非单词字符([a-zA-Z_0-9])

数量词:X?

含义:代表的是X出现一次或一次也没有

例如:匹配规则为"a?",那么需要匹配的内容是一个字符a,或者一个a都没有

数量词:X*

含义:代表的是X出现零次或多次

例如:匹配规则为"a*" ,那么需要匹配的内容是多个字符a,或者一个a都没有

数量词:X+

含义:代表的是X出现一次或多次

例如:匹配规则为"a+",那么需要匹配的内容是多个字符a,或者一个a

数量词:X{n}

含义:代表的是X出现恰好 n 次

例如:匹配规则为"a{5}",那么需要匹配的内容是5个字符a

数量词:X{n,}

含义:代表的是X出现至少 n 次

例如:匹配规则为"a{5, }",那么需要匹配的内容是最少有5个字符a

数量词:X{n,m}

含义:代表的是X出现至少 n 次,但是不超过 m 次

例如:匹配规则为"a{5,8}",那么需要匹配的内容是有5个字符a 到 8个字符a之间

例:

规则:"[0-9]{6,12}"

该规则需要匹配的内容是:长度为6位到12位的数字。

规则:"1[34578][0-9]{9}"

该规则需要匹配的内容是:11位的手机号码,第1位为1,第2位为3、4、5、7、8中的一个,后面9位为0到9之间的任意数字

规则:"a*b"

该规则需要匹配的内容是:在多个a或零个a后面有个b;b必须为最后一个字符

正则表达式的常用方法

5.Date类

导包:java.util.Date

获取当前日期的毫秒值:long time = System.currentTimeMillis();

时间原点:公元1970年1月1日,午夜0:00:00  毫秒值就是0

把毫秒值转成日期对象:Date time1=new Date(1539615506796L);

将日期转为毫秒值:

        Date time=new Date();
        long time2 = time.getTime();
        System.out.println(time2);

6.DateFormat类(对日期格式化)      SimpleDateFormate

DateFormat(java.text.DateFormat)是抽象类,我们需要使用其子类SimpleDateFormat(java.text.SimpleDateFormat)来创建对象

日期模式:

yyyy    年份

MM      月份

dd        天数

HH       0-23小时

mm       小时中的分钟数

ss           秒

String=>Date  用parse

Date=>String  用formate

formate(将毫秒数格式化为指定格式的日期)

例:SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
        System.out.println(sdf.format(new Date()));

parse(将字符串解析为日期对象)   //时间和日期的模式必须和字符串中的日期匹配

例:String str = ”2020年12月11日”;

SimpleDateFormat df = new SimpleDateFormat(“yyyy年MM月dd日”);

Date date = df.parse( str );

7.Calendar类

Calendar类写了静态方法getInstance()直接返回子类对象

不需要new,通过静态方法直接获取

Calendar calendar = Calendar.getInstance();

Calendar的get方法:获取日历字段的值

        Calendar c = Calendar.getInstance();
        System.out.println(c.get(Calendar.YEAR));//获取年份
        System.out.println(c.get(Calendar.MONTH)+1);//获取月份
        System.out.println(c.get(Calendar.DAY_OF_MONTH));//日
        System.out.println(c.get(Calendar.HOUR));//时
        System.out.println(c.get(Calendar.MINUTE));//分
        System.out.println(c.get(Calendar.SECOND));//秒

Calendar的set方法:获取日历字段的值

//设置时间为2020年5月20日

Calendar c = Calendar.getInstance();

c.set(Calendar.YEAR, 2020);

c.set(Calendar.MONTH, 4);

c.set(Calendar.DATE, 20);

Calendar的add方法:日历的偏移量

public void add(int field,int amount) //指定字段增加某值

例:Calendar c = Calendar.getInstance();

//修改当前时间为3天后

c.add(Calendar.DATE, 3);

//修改当前时间为5小时后

c.add(Calendar.HOUR, 5);

8.基本数据类型包装类

 

Integer类中有很多方法:

parseInt(String s)返回基本数据类型   //要求:字符串必须是数字格式的

例:int i = Integer.parseInt("123");

 

 

猜你喜欢

转载自blog.csdn.net/weixin_42062397/article/details/82999884