前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java基础第十一篇之Date、Math、自动装箱和拆箱

java基础第十一篇之Date、Math、自动装箱和拆箱

作者头像
海仔
发布2019-08-05 17:51:00
4150
发布2019-08-05 17:51:00
举报
文章被收录于专栏:海仔技术驿站海仔技术驿站

Date类 表示一个瞬间,就是一个时刻 *

  • 构造方法:
  • public Date();//创建一个表示当前系统时间的Date对象
  • public Date(long time);//毫秒值,距离标准时间(1970.1.1 0点0点0秒)的毫秒值
  • 成员方法:
  • long getTime();//获取当前日期对象(Date对象)距离标准时间的毫秒值
  • 毫秒值—>Date对象:public Date(long time)
  • Date对象---->毫秒值 :long getTime();
  • 第二个类:DateFormat 但是是一个抽象类 我们选择用java提供的其子类:SimpleDateFormat
  • 构造方法:
  • public SimpleDateFormat(String pattern);//以指定的模式 创建一个日期格式化对象
  • 比如: 一个Date对象你想最后打印出来格式: "2017年06月05日 10点20分15秒"
  • 成员方法:
  • public String format(Date d);//把指定的Date对象 转成一个字符串返回给你
  • public Date parse(String time);//把给定String字符串解析成一个Date对象

public static void demo03() throws ParseException{ //一个Date对象你想最后打印出来格式: “2017年06月05日 10点20分15秒” SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); //调用sdf的format方法 Date d = new Date(); String dStr = sdf.format(d); System.out.println(dStr);

代码语言:javascript
复制
	String s = "2010-06-13 10:03:10";
	Date sd = sdf.parse(s);
	System.out.println(sd);
	
public static void demo02(){
	//看一下今天这个时刻 距离标准时间多少毫秒
	Date d = new Date();
	long l = d.getTime();
	System.out.println(l);//1497401350108
}

 Date:日期类,年月日时分秒
  • Calendar:日历类,年月日时分秒
  • 我们发现Calendar是一个抽象类,不能用
  • 而且我们也不用他的子类
  • 获取Calendar类对象的方式:
  • public static Calendar getInstance();//返回一个Calendar的子类对象
  • [time=1497403287679,areFieldsSet=true,areAllFieldsSet=true,
  • lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
  • offset=28800000,dstSavings=0,useDaylight=false,transitions=19,
  • lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,
  • YEAR=2017,MONTH=5,WEEK_OF_YEAR=24,WEEK_OF_MONTH=3,DAY_OF_MONTH=14,
  • DAY_OF_YEAR=165,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=9,
  • HOUR_OF_DAY=9,MINUTE=21,SECOND=27,MILLISECOND=679,ZONE_OFFSET=28800000,
  • DST_OFFSET=0]
  • 成员方法:
  • 1.int get(int field);//获取指定字段(成员变量)的值
  • 2.void set(int field,int value);//把日历对象中的指定字段 改成指定的值
  • 3.void add(int field,int amount);//把日历对象中的指定字段 增加指定的值
  • 4.public Date getTime();//把当前日历对象 转成日期对象
  • System类:系统类,java.lang
  • 查阅API说 System这个类不能创建对象
  • 方法:
  • public static void exit(int code);//退出JVM,后面的参数写0 表示正常终止
  • public static void gc();//通知JVM的垃圾回收器 过来收破烂
  • public static String getProperty(String key);//获取系统的某一个属性
  • public static long currentTimeMillis();//获取当前时间毫秒值
  • Math类:有关数学运算的类
  • 1.public static double abs(double d);//取绝对值
  • 2.public staic double max(double d1,double d2);//取较大值
  • 3.public staic double min(double d1,double d2);/取较小值
  • 4.public static double random();//返回一个随机数 范围[0.0,1.0)
  • 5.public static long round(double d);//四舍五入,只判断小数第一位
  • 6.public static double pow(double d1 ,double d2);//求d1的d2次幂
  • 7.public static double floor(double d);//向下取整
  • 8.public static double ceil(double d);//向上取整
  • ArrayList集合 只能存储引用类型
  • java把8中基本类型 对应 基本数据类型包装类
  • byte short char int long float double boolean
  • Byte Short Character Integer Long Float Double Boolean
  • 定义一个存储整数的集合 ArrayList nums = new …
  • 另外一个作用:把一个字符串转成对应的基本类型的功能
  • 比如:Integer.parseInt("20");
  • 比如:Double.parseDouble("99.99");
  • 自动装箱拆箱
  • 装箱: 把基本类型 ---->对应的包装类型
  • 拆箱: 包装类型----->对应基本类型
  • 而且以上的步骤不许要程序干预,JVM自动判断 自动拆装箱
  • 总结:基本数据类型类型和对应包装类型 我们再开中一视同仁

正则表达式:

  • 不是java的东西,所有编程语言都可以用的东西
  • 正则表达式 是一个特殊字符串,正则表达式字符串内容 表示一个规则
  • "正则表达式"--->代表一个规则
  • true----> "普通的字符串abc.." 匹配上了 "正则表达式"
  • false---> "普通的字符串abc.." 没有匹配上了 "正则表达式"
  • 在字符串类String中 有一个方法 matchs和split
  • public boolean matches(String regex);
  • public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
  • 例题1:
  • 校验qq号码.

public class RegexDemo01 {

代码语言:javascript
复制
public static void main(String[] args) {
	// TODO Auto-generated method stub
	splitDemo02();
}
/*
 * 用正则表达式切分字符串
 */
public static void splitDemo02(){
	String ip = "192...168.....1.....1";
	//写代码 拿出 每一个数字
	//正则表达式中 "."代表任意字符
	//转译字符: \n  \t
	//"\.":把"."的特殊含义去掉
	String[] ips = ip.split("\\.+");//正则表达式中 两个"\\"表示一个"\"
	System.out.println(ips.length);
	for (int i = 0; i < ips.length; i++) {
		System.out.println(ips[i]);
	}
}
/*
 * 用正则表达式切分字符串
 */
public static void splitDemo(){
	String s = "0218--3422---3540-----4565";
	//写代码 把每个短号 拿出来 输出
	//正则表达式中 "+"表示多个前面的元素
	String[] nums = s.split("-+");
	for (int i = 0; i < nums.length; i++) {
		System.out.println(nums[i]);
	}
	
	
	
}

/*
 * 匹配手机号码
 * 1:要求为11位数字
 * 2:第1位为1,第2位为3、4、5、7、8中的一个,
 * 				后面9位为0到9之间的任意数字。
 * 
 */
public static void phone(){
	String num = "12838385438";
	boolean b = num.matches("1[34578][0-9]{9}");//
	System.out.println(b);
}
/*
 * 使用正则表达式 检验QQ号码
 * QQ号码的规则:
 * 1.必须都是数字 
 * 2.位数必须是5-12位
 * 3.首位不能是0
 */
public static void QQ(){
	//定义一个QQ号码
	String qq = "283834567765438";
	//在正则表达式中 范围 我们中括号表示
	//在正则表达式中 个数用大括号
	boolean b =	qq.matches("[1-9][0-9]{4,11}");
	System.out.println(b);
	
}

}

  • 能够理解正则表达式验证11位手机号码
  • 能够理解正则表达式验证QQ号码
  • 能够使用日期类输出当前的日期
  • 构造:
  • public Date();
  • public Date(long time);
  • 成员方法:
  • public long getTime();
  • 能够说出将日期格式化成字符串的方法
  • DateFormat----->SimpleDateFormat
  • 构造:
  • public SimpleDateFormat(String pattern);//pattern模式,必须按照APi中给的字母填写
  • 方法:
  • Date对象--->String格式: public String format(Date d)
  • String格式--->Date对象: public Date parse(String s);
  • Calendar类:
  • 获取Calendar子类对象:
  • public static Calendar getInstance();//实际返回的是Calendar的子类(公历类)对象
  • 方法:
  • public void add(int field,int value);
  • public void set(int field,int value);
  • public int get(int field);
  • public Date getTime();//返回值日历对象 对应的日期对象

public class Test1 { public static void main(String[] args) throws Exception { // int read = System.in.read(); // System.out.println(read);

代码语言:javascript
复制
	  Scanner dd=new Scanner(System.in);
      System.out.println("请输入你想查询的年份:");
      int year=dd.nextInt();
      Calendar c=Calendar.getInstance();

// c.set(year, 2,0); c.set(year, 2,1); c.add(Calendar.DATE, -1); System.out.println(“这一年2月有”+ c.get(Calendar.DATE)+“天”); } }

/* * 键盘录入指定格式(yyyy-MM-dd)的任意日期,显示出对应的星期几 * * “E” 代表的是星期几 */ System.out.println(“请输入指定格式的:”); String s = new Scanner(System.in).nextLine(); //定义日期格式化对象,用于将用户输入的字符串转换为日期对象 DateFormat df = new SimpleDateFormat(“yyyy-MM-dd”); //将字符串转换为日期对象 Date d = df.parse(s); //定义日期格式化对象,用于将日期对象转换为指定的字符串形式的对象 SimpleDateFormat sdf = new SimpleDateFormat(“E”); //解析日期对象为字符串形式 String str = sdf.format(d); System.out.println(str);

计算字符串中所有数字的平均值.题目考察字符串的解析和引用类型转换. 信息已给出 : String s= " 第一组得分:92.8,第二组得分:88.8,第三组得分:95.4";

String s= “第一组得分:92.8,第二组得分:88.8,第三组得分:95.4”; //1.定义正则表达式,匹配数字和逗号以外的字符,并使用replaceAll方法,将字符串所有的数字以外的 //字符替换掉 String s1 = “第[一二三]组得分:”; String s2 = s.replaceAll(s1, “”); String[] s3 = s2.split(","); double sum = 0; //迭代数字,并将数字中德米一个元素都转换为double类型后,求和 for (String string : s3) { //sum += Integer.parseInt(string); sum += Double.parseDouble(string); //System.out.println(string); } //求平均数 double i =sum/(s3.length); System.out.println(i);

  • 写出基本数据类型对应的八种包装类
  • int--->Integer
  • char--->Character
  • 写出字符串转换成基本数据类型的方法
  • Integer.parseInt("20");
  • Double.parseDouble("99.95");
  • 写出基本数据类型转换成字符串方式
  • 最简单的: 4+""===>"4"
  • 能够说出拆箱装箱概念
  • 拆箱: 包装类-->基本类型
  • 装箱: 基本类型-->包装类
  • 能够掌握System类常见方法的使用
  • public static long currentTimeMillis();//获取当前时间的毫秒值
  • //不重要
  • public void exit(0);//终止JVM
  • public void gc();//告诉系统需要运行系统的垃圾回收器
  • public String getProperty(String key);//获取一些系统有关属性值
  • 能够使用Math类进行数学运算
  • 1.public double random();//
  • 2.public long round(double d);//把d参数 四舍五入
  • 3.public double ceil(double d)//向上取整
  • 4.public double floor(double d)//向下取整
  • 5.public double pow(double d1,double d2);//求d2个d1相乘的积
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档