关闭

文章标题

标签: 对象
69人阅读 评论(0) 收藏 举报
分类:

###14.01_常见对象(正则表达式的概述和简单使用)
* A:正则表达式
*


1
2
是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
*作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的

  • B:案例演示
  • 需求:


1
2
3
4
校验qq号码.
*1:要求必须是5-15位数字
*2:0不能开头
*3:必须都是数字

  • a:非正则表达式实现


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
publicstaticbooleancheckQQ(Stringqq){
booleanflag=true;//如果校验qq不符合要求就把flag置为false,如果符合要求直接返回
if(qq.length()>=5&&qq.length()<=15){
if(!qq.startsWith(“0”)){
char[]arr=qq.toCharArray();//将字符串转换成字符数组
for(inti=0;i

14.02_常见对象(字符类演示)

  • A:字符类
  • [abc] a、b 或 c(简单类) 只包含abc其中一个的单个字符


1
2
3
4
5
Stringregex=”[abc]”;
System.out.println(“a”.matches(regex));//true
System.out.println(“c”.matches(regex));//true
System.out.println(“aa”.matches(regex));//false
System.out.println(“d”.matches(regex));//false

  • [^abc] 任何字符,除了 a、b 或 c(否定)


1
2
3
4
5
Stringregex1=”[^abc]”;
System.out.println(“a”.matches(regex1));//false
System.out.println(“r”.matches(regex1));//true
System.out.println(“aa”.matches(regex1));//false
System.out.println(“1”.matches(regex1));//false

  • [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)


1
2
3
4
5
6
Stringregex2=”[a-zA-Z]”;//a到z或A到Z,两头的字母包括在内(范围)
System.out.println(“a”.matches(regex2));//true
System.out.println(“z”.matches(regex2));//true
System.out.println(“aa”.matches(regex2));//false
System.out.println(“Z”.matches(regex2));//true
System.out.println(“9”.matches(regex2));//false

  • [0-9] 0到9的字符都包括


1
2
3
4
5
Stringregex3=”[0-9]”;//0到9的字符都包括
System.out.println(“a”.matches(regex3));//false
System.out.println(“9”.matches(regex3));//true
System.out.println(“1”.matches(regex3));//true
System.out.println(“J”.matches(regex3));//false
*[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)


1
2
3
4
5
6
Stringregex5=”[a-d[m-p]]”;
System.out.println(“a”.matches(regex5));//true
System.out.println(“m”.matches(regex5));//true
System.out.println(“n”.matches(regex5));//true
System.out.println(“e”.matches(regex5));//false
System.out.println(“dd”.matches(regex5));//false

*[a-z&&[def]] d、e 或 f(交集)单个字符的


1
2
3
4
5
Stringregex6=”[a-z&&[def]]”;
System.out.println(“a”.matches(regex6));//false
System.out.println(“d”.matches(regex6));//true
System.out.println(“ef”.matches(regex6));//false
System.out.println(“z”.matches(regex6));//false

*[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)


1
2
3
4
5
Stringregex7=”[a-z&&[^bc]]”;
System.out.println(“a”.matches(regex7));//true
System.out.println(“b”.matches(regex7));//false
System.out.println(“c”.matches(regex7));//false
System.out.println(“bb”.matches(regex7));//false

*[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)


1
2
3
4
5
Stringregex8=”[a-z&&[^m-p]]”;
System.out.println(“l”.matches(regex8));//true
System.out.println(“m”.matches(regex8));//false
System.out.println(“p”.matches(regex8));//false
System.out.println(“q”.matches(regex8));//true

14.03_常见对象(预定义字符类演示)

  • A:预定义字符类
  • . 任何字符


1
2
3
4
5
Stringregex=”.”;
System.out.println(“a”.matches(regex));//true
System.out.println(“bb”.matches(regex));//false
System.out.println(“1”.matches(regex));//true
System.out.println(“$”.matches(regex));//true

*\d 数字:[0-9] 单数字


1
2
3
4
5
Stringregex=”\d”;//\代表转义字符,如果想表示\d的话,需要\d
System.out.println(“0”.matches(regex));//true
System.out.println(“a”.matches(regex));//false
System.out.println(“9”.matches(regex));//true
System.out.println(“$”.matches(regex));//false

*\D 非数字: [^0-9] 非数字的单字符


1
2
3
4
5
Stringregex1=”\D”;
System.out.println(“0”.matches(regex1));//false
System.out.println(“9”.matches(regex1));//false
System.out.println(“a”.matches(regex1));//true
System.out.println(“1a”.matches(regex1));//false

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


1
2
3
4
5
Stringregex2=”\s”;
System.out.println(“”.matches(regex2));//没有字符,//false
System.out.println(“”.matches(regex2));//一个空格//true
System.out.println(“”.matches(regex2));//一个tab键//true
System.out.println(“”.matches(regex2));//四个空格//false

*\S 非空白字符:[^\s] 非空白单字符


1
2
3
4
5
6
Stringregex3=”\S”;
System.out.println(“”.matches(regex3)); //无字符//false
System.out.println(“”.matches(regex3)); //一个空格//false
System.out.println(” “.matches(regex3)); //tab键//false
System.out.println(“a”.matches(regex3)); //a字符//true
System.out.println(“ab1”.matches(regex3)); //三个字符//false

*\w 单词字符:[a-zA-Z_0-9]


1
2
3
4
5
Stringregex4=”\w”;//\w单词字符:[a-zA-Z_0-9]
System.out.println(“a”.matches(regex4));//true
System.out.println(“za”.matches(regex4));//false
System.out.println(“_”.matches(regex4));//true
System.out.println(“%”.matches(regex4));//false

*\W 非单词字符:[^\w]


1
2
3
4
5
Stringregex5=”\W”;
System.out.println(“a”.matches(regex5));//false
System.out.println(“z”.matches(regex5));//false
System.out.println(“_”.matches(regex5));//false
System.out.println(“%”.matches(regex5));//true

14.04_常见对象(数量词)

  • A:Greedy 数量词
  • X? X,一次或一次也没有


1
2
3
4
5
6
Stringregex=”[abc]?”;
System.out.println(“a”.matches(regex));//true
System.out.println(“b”.matches(regex));//true
System.out.println(“c”.matches(regex));//true
System.out.println(“d”.matches(regex));//false
System.out.println(“”.matches(regex));//true

  • X* X,零次或多次


1
2
3
4
5
6
Stringregex=”[abc]*”;//零次或多次
System.out.println(“a”.matches(regex));//true
System.out.println(“babac”.matches(regex));//true
System.out.println(“”.matches(regex));//true
System.out.println(“aa”.matches(regex));//true
System.out.println(“”.matches(regex));//false

  • X+ X,一次或多次


1
2
3
4
5
6
Stringregex=”[abc]+”;//一次或多次
System.out.println(“a”.matches(regex));//true
System.out.println(“babac”.matches(regex));//true
System.out.println(“”.matches(regex));//false
System.out.println(“aa”.matches(regex));//true
System.out.println(“”.matches(regex));//false

  • X{n} X,恰好 n 次


1
2
3
4
5
Stringregex=”[abc]{5}”;//恰好n次
System.out.println(“abcba”.matches(regex));//true
System.out.println(“abcbaabcabbabab”.matches(regex));//false
System.out.println(“abcb”.matches(regex));//false
System.out.println(“abcbaaba”.matches(regex));//false

  • X{n,} X,至少 n 次


1
2
3
4
5
Stringregex=”[abc]{5,}”;
System.out.println(“abcba”.matches(regex));//true
System.out.println(“abcbaabcabbabab”.matches(regex));//true
System.out.println(“abcb”.matches(regex));//false
System.out.println(“abcbaaba”.matches(regex));//true

  • X{n,m} X,至少 n 次,但是不超过 m 次


1
2
3
4
5
Stringregex=”[abc]{5,15}”;
System.out.println(“abcba”.matches(regex));//true
System.out.println(“abcbaabcabbabab”.matches(regex));//true
System.out.println(“abcb”.matches(regex));//false
System.out.println(“abcbaabaabcbaaba”.matches(regex));//false

14.05_常见对象(正则表达式的分割功能)

  • A:正则表达式的分割功能
  • String类的功能:public String[] split(String regex)
  • B:案例演示
  • 正则表达式的分割功能


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Stringstr=”1,22,3,4,576,6,56”;
String[]s=str.split(“,”);
for(inti=0;i

14.06_常见对象(把给定字符串中的数字排序)

  • A:案例演示
  • 需求:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”


1
2
3
4
5
6
7
8
9
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Stringstr=”9127463850”;
String[]s=str.split(“[]+”);
Arrays.sort(s);
for(inti=0;i

14.07_常见对象(正则表达式的替换功能)

  • A:正则表达式的替换功能
  • String类的功能:public String replaceAll(String regex,String replacement)
  • B:案例演示
  • 正则表达式的替换功能

14.08_常见对象(正则表达式的分组功能)

  • A:正则表达式的分组功能
  • 捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:

  • 1 ((A)(B(C)))
    2 (A
    3 (B(C))
    4 (C)

组零始终代表整个表达式。
* B:案例演示
a:切割
需求:请按照叠词切割: “sdqqfgkkkhjppppkl”;
b:替换
需求:我我….我…我.要…要要…要学….学学..学.编..编编.编.程.程.程..程
将字符串还原成:“我要学编程”。

14.09_常见对象(Pattern和Matcher的概述)

  • A:Pattern和Matcher的概述
  • B:模式和匹配器的典型调用顺序
  • 通过JDK提供的API,查看Pattern类的说明
  • 典型的调用顺序是
  • Pattern p = Pattern.compile(“a*b”);
  • Matcher m = p.matcher(“aaaaab”);
  • boolean b = m.matches();

14.10_常见对象(正则表达式的获取功能)

  • A:正则表达式的获取功能
  • Pattern和Matcher的结合使用
  • B:案例演示
  • 需求:把一个字符串中的手机号码获取出来

14.11_常见对象(Math类概述和方法使用)

  • A:Math类概述
  • Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
  • B:成员方法
  • public static int abs(int a)


1
2
System.out.println(Math.PI);
System.out.println(Math.abs(-10));//取绝对值10

  • public static double ceil(double a) 大于他的整数,ceil天花板


1
2
System.out.println(Math.ceil(12.3));//向上取整,但是结果是一个double
System.out.println(Math.ceil(12.99));//13.013.0

  • public static double floor(double a)


1
2
System.out.println(Math.floor(12.3));//向下取整,但是结果是一个double
System.out.println(Math.floor(12.99));//12.012.0

  • public static int max(int a,int b) min自学


1
2
3
//获取两个值中的最大值
System.out.println(Math.max(20,30));//30
System.out.println(Math.min(20,30));//20

  • public static double pow(double a,double b)


1
2
//前面的数是底数,后面的数是指数
System.out.println(Math.pow(2,3));//2.0^3.0//8.0

  • public static double random()


1
2
//生成0.0到1.0之间的所以小数,包括0.0,不包括1.0
System.out.println(Math.random());

  • public static int round(float a) 参数为double的自学


1
2
3
//四舍五入
System.out.println(Math.round(12.3f));//12
System.out.println(Math.round(12.9f));//13

  • public static double sqrt(double a)


1
2
3
4
//开平方
System.out.println(Math.sqrt(4));
System.out.println(Math.sqrt(2));
System.out.println(Math.sqrt(3));

14.12_常见对象(Random类的概述和方法使用)

  • A:Random类的概述
  • 此类用于产生随机数如果用相同的种子创建两个 Random 实例,
  • 则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
  • B:构造方法
  • public Random()
  • public Random(long seed)
  • C:成员方法
  • public int nextInt()
  • public int nextInt(int n)(重点掌握)


1
2
Randomran=newRandom();
System.out.println(ran.nextInt(100));//要求掌握,生成在0到n范围内的随机数,包含0不包含n

14.13_常见对象(System类的概述和方法使用)

  • A:System类的概述
  • System 类包含一些有用的类字段和方法。它不能被实例化。
  • B:成员方法
  • public static void gc()
  • public static void exit(int status)
  • public static long currentTimeMillis()
  • pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  • C:案例演示
  • System类的成员方法使用

14.14_常见对象(BigInteger类的概述和方法使用)

  • A:BigInteger的概述
  • 可以让超过Integer范围内的数据进行运算
  • B:构造方法
  • public BigInteger(String val)
  • C:成员方法
  • public BigInteger add(BigInteger val)
  • public BigInteger subtract(BigInteger val)
  • public BigInteger multiply(BigInteger val)
  • public BigInteger divide(BigInteger val)
  • public BigInteger[] divideAndRemainder(BigInteger val)


1
2
3
4
5
6
7
8
9
BigIntegerbi1=newBigInteger(“100”);
BigIntegerbi2=newBigInteger(“2”);
System.out.println(bi1.add(bi2));//+
System.out.println(bi1.subtract(bi2));//-
System.out.println(bi1.multiply(bi2));//*
System.out.println(bi1.divide(bi2));///(除)
BigInteger[]arr=bi1.divideAndRemainder(bi2);//取除数和余数
for(inti=0;i

14.15_常见对象(BigDecimal类的概述和方法使用)

  • A:BigDecimal的概述
  • 由于在运算的时候,float类型和double很容易丢失精度,演示案例。
  • 所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
  • 不可变的、任意精度的有符号十进制数。
  • B:构造方法
  • public BigDecimal(String val)
  • C:成员方法
  • public BigDecimal add(BigDecimal augend)
  • public BigDecimal subtract(BigDecimal subtrahend)
  • public BigDecimal multiply(BigDecimal multiplicand)
  • public BigDecimal divide(BigDecimal divisor)
  • D:案例演示
  • BigDecimal类的构造方法和成员方法使用

14.16_常见对象(Date类的概述和方法使用)(掌握)

  • A:Date类的概述 Date类的概述是util包下的,不能导入sql包的
  • 类 Date 表示特定的瞬间,精确到毫秒。
  • B:构造方法
  • public Date()
  • public Date(long date)


1
2
3
4
5
6
7
8
9
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Dated1=newDate();//如果没有传参数代表的是当前时间
System.out.println(d1);//FriDec2317:07:21GMT+08:002016
Dated2=newDate(0);//如果构造方法中参数传为0代表的是1970年1月1日
System.out.println(d2);//通过毫秒值创建时间对象
//ThuJan0108:00:00GMT+08:001970
}

  • C:成员方法
  • public long getTime()


1
2
3
Dated1=newDate();
System.out.println(d1.getTime());//通过时间对象获取毫秒值//1482484353335
System.out.println(System.currentTimeMillis());//通过系统类的方法获取当前时间毫秒值//1482484353335

  • public void setTime(long time)


1
2
3
Dated2=newDate();
d2.setTime(1000);//设置毫秒值,改变时间对象,在1970年时间加了1秒
System.out.println(d2);//ThuJan0108:00:01GMT+08:001970

14.17_常见对象(SimpleDateFormat类实现日期和字符串的相互转换)(掌握)

  • A:DateFormat类的概述
  • DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat
    /


1
2
3
/DateFormatdf=newDateFormat();//DateFormat是抽象类,不允许实例化
//DateFormatdf1=newSimpleDateFormat();
DateFormatdf1=DateFormat.getDateInstance();//相当于父类引用指向子类对象,右边的方法返回一个子类对象

  • B:SimpleDateFormat构造方法
  • public SimpleDateFormat()


1


1
2
3
4
5
6
Dated=newDate();//获取当前时间对象
SimpleDateFormatsdf=newSimpleDateFormat();////创建日期格式化类对象
System.out.println(sdf.format(d));//16-12-23下午6:43
Dated1=newDate();//获取当前时间对象
SimpleDateFormatsdf1=newSimpleDateFormat(“yyyy年MM月dd月HH:mm:ss”);////创建日期格式化类对象
System.out.println(sdf1.format(d1));//2016年12月23月18:43:56


1
2
3
4
5
6
//将时间字符串转换成日期对象
Stringstr=”2000年08月08日08:08:08”;
SimpleDateFormatsdf2=newSimpleDateFormat(“yyyy年MM月dd日HH:mm:ss”);
Dated2=sdf2.parse(str);//将时间字符串转换成日期对象
System.out.println(d2);
//TueAug0808:08:08GMT+08:002000

14.18_常见对象(你来到这个世界多少天案例)(掌握)

  • A:案例演示
  • 需求:算一下你来到这个世界多少天?


1
2
3
4
5
6
7
8
9
Strings1=”1991年11月10日”;
Strings2=”2016年12月23日”;//将生日字符串和今天字符串存在String类型的变量中
SimpleDateFormatsdf=newSimpleDateFormat(“yyyy年MM月dd日”);//定义日期格式化对象
Dated1=sdf.parse(s1);
Dated2=sdf.parse(s2);//将日期字符串转换成日期对象
longtime=d2.getTime()-d1.getTime();//通过日期对象获取时间毫秒值
System.out.println(time/1000/60/60/24);//换算成天数
//9175

14.19_常见对象(Calendar类的概述和获取日期的方法)(掌握)

  • A:Calendar类的概述
  • Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
  • B:成员方法
  • public static Calendar getInstance()
  • public int get(int field)


1
2
3
4
5
6
Calendarca=Calendar.getInstance();//父类引用指向子类对象
//System.out.println(ca);
System.out.println(ca.get(Calendar.YEAR));//获取年份
System.out.println(ca.get(Calendar.MONTH));//老外月份从0开始编号,12月就是11
System.out.println(ca.get(Calendar.DAY_OF_MONTH));//获取月中的当前天数
System.out.println(ca.get(Calendar.DAY_OF_WEEK));//老外周日为一星期的第一天,所以为6,其实今天周五

14.20_常见对象(Calendar类的add()和set()方法)(掌握)

  • A:成员方法
  • public void add(int field,int amount)
  • public final void set(int year,int month,int date)
  • B:案例演示
  • Calendar类的成员方法使用

14.21_常见对象(如何获取任意年份是平年还是闰年)(掌握)

  • A:案例演示
  • 需求:键盘录入任意一个年份,判断该年是闰年还是平年


1
2
3
4
5
6
7
8
9
10
11
12
13
14
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Scannersc=newScanner(System.in);//创键盘录入对象
System.out.println(“请输入一个年份:是闰年还是平年”);
intyear=sc.nextInt();//声明变量接收输入的值
booleanboo=getYear(year);
System.out.println(boo);
}
privatestaticbooleangetYear(intyear){
Calendarc=Calendar.getInstance();//创建Calendar
c.set(year,2,1);//设置为那一年的三月一日
c.add(Calendar.DAY_OF_MONTH,-1);//将日向前减去一
returnc.get(Calendar.DAY_OF_MONTH)==29;//判断2月是不是29天
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1883次
    • 积分:194
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:0篇
    • 译文:10篇
    • 评论:0条
    文章存档