第八九天笔记总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第八九天笔记总结相关的知识,希望对你有一定的参考价值。
10.1 Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法 Calendar(日历类) -- 获取年,获取月,获取日,获取时,获取分,获取秒。 public int get(int field):返回给定日历字段的值 10.2 需求:获取当前时间的5年后的3个月前的7天后。 public void add(int field,int amount):根据amount修改field的值 public void set(int year,int month,int date):设置当前日历的年月日 package com.edu.calendar; import java.util.Calendar; import java.util.Scanner; public class CalendarTest { publicstatic void main(String[] args) { //10.3 键盘录入年份,获取任意一年的二月有多少天 /** * 1.获取年份 * 2.将日历对象的时间调到,此年的3月的第一天 * 3.将日期对象向前推一天 * 4.获取此天的日期 */ System.out.println("请输入年份"); Scannersc = new Scanner(System.in); intyear = sc.nextInt(); //2.将日历对象的时间调到,此年的3月的第一天 Calendarc = Calendar.getInstance(); c.set(year,2, 1); //3.将日期对象向前推一天 c.add(Calendar.DATE,-1); //4.获取此天的日期 System.out.println("该年的二月有"+c.get(Calendar.DATE)); } } 10.3 键盘录入年份,获取任意一年的二月有多少天 package com.edu.calendar; import java.util.Calendar; import java.util.Scanner; public class CalendarTest { public static void main(String[] args) { // 10.3 键盘录入年份,获取任意一年的二月有多少天 /** * 1.获取年份 * 2.将日历对象的时间调到,此年的3月的第一天 * 3.将日期对象向前推一天 * 4.获取此天的日期 */ System.out.println("请输入年份"); Scanner sc = new Scanner(System.in); int year = sc.nextInt(); // 2.将日历对象的时间调到,此年的3月的第一天 Calendar c = Calendar.getInstance(); c.set(year, 2, 1); //3.将日期对象向前推一天 c.add(Calendar.DATE, -1); //4.获取此天的日期 System.out.println("该年的二月有"+c.get(Calendar.DATE)); } } /** * 案例: 键盘录入出生日期,算一下你来到这个世界多少天? */ package com.edu; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; /** * 案例: 键盘录入出生日期,算一下你来到这个世界多少天? */ public class Day { public static void main(String[] args) throws ParseException { //创建键盘录入对象并导包 Scanner sc = new Scanner(System.in); //提示用户输入 System.out.println("请按照yyyy-MM-dd输入出生日期"); //接收键盘录入数据 String dateBirth = sc.nextLine(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date d = sdf.parse(dateBirth); long birthTime = d.getTime(); Date d2 = new Date(); long nowTime = d2.getTime(); long time = nowTime-birthTime; System.out.println("你来到这个世上"+time/(1000*60*60*24)+"天了"); } } -------------------------------------------------------------------------------------------------------------------------- 11. 正则表达式: 11.1 正则表达式:符合一定规则的字符串 案例:(用正则和代码两种方式实现) 键盘录入qq号码,校验QQ号码。 需求: 1:要求必须是5-15位数字 2:0不能开头 package com.edu.regex1; import java.util.Scanner; public class RegexDemo { public static void main(String[] args) { /** * 案例:(用正则和代码两种方式实现) 键盘录入qq号码,校验QQ号码。 需求: 1:要求必须是5-15位数字 2:0不能开头 分析:(封装一个方法,这个方法的返回值是布尔类型,参数就是qq号码) 1.判断qq号码的长度,5-15位之间 2.不能以0开头 3.每一位的字符必须是数字 */ System.out.println("请输入你需要校验的qq号码"); Scanner sc = new Scanner(System.in); String qq = sc.nextLine(); //将获取到的qq号码传递给我这个方法 //方式1:使用代码进行校验qq号码 //System.out.println(isCheck(qq)); //方式2:使用正则表达式校验qq号码 System.out.println(isCheck2(qq)); } private static boolean isCheck2(String qq) { //定义一个校验qq号码的正则表达式,这个正则表达式就是符合我的qq号码的校验规则的正杂表达式 String reg = "[1-9][0-9]{4,14}"; //使用正则表达式校验我的qq号码 boolean flag = qq.matches(reg); return flag; } private static boolean isCheck(String qq) { //定义一个标记 boolean flag = true; //在这里进行校验判断,但凡有一个条件不满足,就更该flag的值为false //1.判断qq号码的长度,5-15位之间 if (qq.length()>=5&&qq.length()<=15) { //2.不能以0开头 if (!qq.startsWith("0")) { //3.每一位的字符必须是数字 char[] qqChs = qq.toCharArray(); //遍历字符数组 for (int i = 0; i < qqChs.length; i++) { if (Character.isDigit(qqChs[i])) { }else { flag = false; } } }else { flag = false; } }else { //更改flag的值 flag = false; } return flag; } } 11.2 规则字符在java.util.regexPattern类中 A:字符 x字符x(举例:a,1) \\反斜线字符 B:字符类 [abc]a、b 或 c(简单类) [^abc]任何字符,除了 a、b 或 c(否定) [a-zA-Z]a 到 z 或 A 到 Z,两头的字母包括在内(范围) [0-9]0-9字符 C:预定义字符类 .任何字符 \d数字:[0-9] \w单词字符:[a-zA-Z_0-9] D:Greedy数量词 X?X,一次或一次也没有 X*X,零次或多次 X+X,一次或多次 X{n}X,恰好 n 次 X{n,}X,至少 n 次 X{n,m}X,至少 n 次,但是不超过 m 次 结论:以后需要匹配的正则表达式怎么写呢? 答:不用写,直接网上百度 11.3 判断功能: public boolean matches(Stringregex):告知此字符串是否匹配给定的正则表达式。 需求1:找出规则,写出正则(1[38][0-9]{9}),校验电话号码 13245678901 13332345678 1345678901218812345678 18999999999 18666666666 18786868686 需求2:找出规则,写出正则(Stringreg = "[a-zA-Z_0-9][email protected][a-zA-Z_0-9]{2,8}(\\.[comnet]{2,3})+"),校验邮箱 [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] 11.4 分割功能 public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。 需求1: 分割如下字符串: String s = "aa,bb,cc"; String s2 = "aa.bb.cc"; String s3 = "aa bb cc"; String s4 = "aa bb cc"; String s5 = "D:\\baidu\\20150826\\day14"; 需求2: 我有如下一个字符串:”91 27 46 3850” 请写代码实现最终输出结果是:”27 38 46 50 91” package com.edu03; import java.util.Arrays; /** * 需求2: 我有如下一个字符串:”91 27 46 38 50” 请写代码实现最终输出结果是:”27 38 46 50 91”r * */ publicclass SplitDemo { publicstaticvoid main(String[] args) { String s = "91 27 4638 50"; String reg = " "; String[] str = s.split(reg); //遍历字符串数组,并定义一个int[] int[] arr = newint[str.length]; for (int i = 0; i < str.length; i++) { arr[i] = Integer.parseInt(str[i]); } //排序int[] Arrays.sort(arr); //遍历数组 StringBuffer sb = new StringBuffer(); for (int i = 0; i < arr.length; i++) { sb.append(arr[i]+" "); } System.out.print(sb.toString()); } }
以上是关于第八九天笔记总结的主要内容,如果未能解决你的问题,请参考以下文章