8种基本数据类型的8种包装类

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

Integer a=127; Integer b=127;//虚拟机自动装箱时进行了特殊处理,-127~128以下的自动取有过的

System.out.println(a==b);结果为true

如果是Integer a=128; Integer b=128;

System.out.println(a==b);结果为false

System.out.println(a.equals(b)); 比较的都为内容,因复写过equals结果为true

日期类的练习

package com.swift.day06;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner; /*需求:
1.使用代码完成:获取系统的当前时间并输出,输出格式:2017年11月24日
2.使用代码完成:获取键盘录入的时间转换成Date对象并输出,录入格式:2017年11月24日,如格式不正确需提示日期格式异常并打印异常信息
3.使用代码完成:使用Calendar类获取系统的当前日期并输出,输出格式:2017年11月24日
4.使用代码完成:遍历数字1-10,当遍历到5时结束java程序*/ public class Demo1 { public static void main(String[] args) {
//Date类格式转换
Date date=new Date();
System.out.println(date);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日");
String str=sdf.format(date);
System.out.println(str);
//键盘字符串转日期
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个日期");
String time=scan.nextLine();
System.out.println(time);
try {
Date d=sdf1.parse(time);
System.out.println(d);
} catch (ParseException e) {
System.out.println("日期格式异常啦~~~~~~~");
e.printStackTrace();
}
System.out.println("==========================");
//日历类操作
Calendar c=Calendar.getInstance();
System.out.println(c);
Date d1=c.getTime();
System.out.println(sdf1.format(d1));
//遍历到5时结束java程序
for(int i=0;i<10;i++) {
if(i==5) {
System.exit(0);
}
System.out.println("i="+i); }
}
}

数学以及装箱

package com.swift.day06;

import java.util.ArrayList;

/*需求:
1.使用代码完成:使用Math类,获取2个随机数中的最大值
2.使用代码完成:使用Math类,获取2个随机数中的最小值
3.使用代码完成:使用Math类获取5个随机数的平均值,平均值四舍五入
4.写出8种基本数据类型的包装类
5.使用代码完成:将字符串"123"转换成int类型
6.使用代码完成:将Long类型的数字10转换成int类型
7.简述下什么是自动装箱拆箱
8:请阐述你对正则表达式的理解
9.使用代码完成:校验qq号码,其中QQ校验的正则表达式为:"[1-9][0-9]{4,14}" 表示第一位不为0第二位起都是数字共5到15位
10:使用代码完成:校验手机号码,其中手机号校验的正则表达式为:"1[34578][0-9]{9}"*/ public class Demo2 { public static void main(String[] args) { //Math类
System.out.println(Math.max(20, 30));
System.out.println(Math.min(20, 30));
//Math类获取5个随机数的平均值,平均值四舍五入
double sum=0.0;
for(int x=0;x<5;x++) { double ran=Math.random()*10;
System.out.println(ran);
sum=sum+ran;
}
System.out.println(Math.round(sum/5.0));
//字符串"123"转换成int类型
int a=Integer.parseInt("123");
System.out.println(a);
//将Long类型的数字10转换成int类型
Long b=new Long(10L);
System.out.println(b.intValue());
//什么是自动装箱拆箱
Integer z=5;//本来这个是不合法的,应该是Integer z=new Integer(5);-->称为自动装箱
Integer z1=new Integer(5);//这个是合法的
Integer y=z+1;//本来这个也是不合法的,这里z+1进行了拆箱操作,然后又进行了装箱操作
ArrayList<Integer> arr=new ArrayList<>();
arr.add(1);//本来这样写也是不合法的,这令经过了自动装箱操作,合法的应为arr.add(new Integer(1));
int x=arr.get(0);//本来这里也是不合法的,这里经过了自动拆箱操作,把对象new Integer(1)拆箱成了int的1
//校验手机号码
String phone="138000x23847";
boolean bool=phone.matches("1[35678]\\d{9}");
System.out.println(bool); }
}

活了多少天

package com.swift.day06;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; /*训练考核知识点:Date类
训练描述
请使用代码实现:计算你活了多少天 操作步骤描述
在main方法中
a)把你生日的字符串,转换为日期对象
b)把日期对象转换为对应的毫秒值
c)获取当前系统的毫秒值
d)当前系统毫秒值-出生时间对于的毫秒值计算你活的毫秒值
e)把你活毫秒值转换为天
f)输出天数
g)使用try...catch处理异常*/ public class Huojiu { public static void main(String[] args) {
//把你生日的字符串,转换为日期对象
String birthday="2017年7月7日";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
try {
Date date=sdf.parse(birthday);
System.out.println(date);
long millis=date.getTime();
System.out.println(millis);
//获取当前系统的毫秒值
long now=System.currentTimeMillis();
long now1=new Date().getTime();
System.out.println(now+"~~"+now1);
//活得毫秒数
long huo=now-millis;
System.out.println(huo);
//活的天数
System.out.println(huo/1000/60/60/24+"天"); } catch (ParseException e) {
e.printStackTrace();
} }
}

正则判断用户名

package com.swift.day06;

import java.util.Scanner;

/*正则表达式

需求:
编写一个校验用户名的程序,检测键盘录入的用户名是否合法
要求:必须以英文开头,只能包含英文,数字和`_`;最少6位,做多12位,对应的正则表达式:[a-zA-Z]\\w{5,11}*/ public class RegexDemo { public static void main(String[] args) { Scanner scan=new Scanner(System.in);
System.out.println("请输入一个用户名");
String name=scan.nextLine();
System.out.println(name);
boolean b=name.matches("[a-zA-Z][a-zA-Z0-9_]{5,11}");
System.out.println(b);
} }

500天后是什么日期

package com.swift.day06;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; //500天后是什么日期
public class DayAfter500 { public static void main(String[] args) { Calendar c=Calendar.getInstance();
Date date=c.getTime();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String day=sdf.format(date);
System.out.println(day);
c.add(Calendar.DAY_OF_MONTH, 500);
Date date1=c.getTime();
String day1=sdf.format(date1);
System.out.println(day1); }
}

以上知识点综合,把复杂字符串匹配成对象,并进行正则判断

package com.swift.day06;

/*请使用代码描述
*
有一段文本 " anglebaby 女 18 515151511 "
分别描述一个人的姓名 性别 年龄(int) 和QQ号码信息,完成如下需求:
1. 创建一个Person类,包含性别,性别,年龄和QQ号码属性,使用解析出来信息创建一个Person对象,并打印这个人信息
2. 并判断QQ号是否合法,匹配规则,全部都是数字,第一位非0,长度为5到12位. */ public class Zifuchuan_Parse { public static void main(String[] args) { String info=" anglebaby 女 18 515151511 ";
info=info.trim();
String[] arr=info.split("\\s+");
for(String str:arr) {
System.out.println(str);
}
String name=arr[0];
String sex=arr[1];
int age=Integer.parseInt(arr[2]);
String qq=arr[3];
Person p=new Person(name,sex,age,qq);
System.out.println(p.toString());
if(qq.matches("[1-9][0-9]{4,11}")) {
System.out.println("QQ号码合法~");
}
}
} class Person{ private String name;
private String sex;
private int age;
private String qq;
public Person(String name, String sex, int age, String qq) {
super();
this.name = name;
this.sex = sex;
this.age = age;
this.qq = qq;
}
public Person() {
super();
}
@Override
public String toString() {
return "Person [name=" + name + ", sex=" + sex + ", age=" + age + ", qq=" + qq + "]";
} }

最新文章

  1. c++ 在windows下获取时间和计算时间差的几种方法总结
  2. seleniu+python+chrome的调试
  3. Android AsyncTask
  4. Maven-005-部署构件至 nexus 私服
  5. HashMap简单理解
  6. JAVA中的deflate压缩实现
  7. PHPExcel Fatal error: ZipArchive library is not enabled
  8. MySQL支持emoji
  9. linux 怎么使用一个c/c++库
  10. 【一天一道LeetCode】#257. Binary Tree Paths
  11. 客户地点分配多OU
  12. jsoup爬取网站图片
  13. 这是一个新的开始at this very monment
  14. windows Docker Desktop 搭建mysql,mssql和redis服务
  15. Win 10 安装手机驱动
  16. Python 私有
  17. python基础之socket与socketserver
  18. Android adb你真的会用吗?
  19. HTML 教程
  20. Extjs6 编写自己的富文本组件(以ueditor为基础)

热门文章

  1. IE7+ 浏览器兼容预览本地图片
  2. Murano Weekly Meeting 2015.08.18
  3. 最新版本dede与discuz通过ucenter完美整合
  4. php-fpm 进程在云服务器cpu分配不均匀
  5. 学习.NET好书推荐
  6. IDEA检出SVN项目
  7. DOMNodeInserted,DOMNodeRemoved 和监听内容变化插件
  8. three.js一个简单demo学些和讲解
  9. 秒懂JSON.parse()与JSON.stringify()的区别
  10. C++ Knowledge series Layering