1.将字符串转成基本类型:
package vp.lu.demo3;
/**
- 字符串,包装类,基本数据类型的相互转换
- @author 18875
/
public class Demo1 {
public static void main(String[] args) {
fun3();
}
/*
* 包装类 <==>字符串
* 1.包装类=>字符串:
* 1.1 包装类:String toString() 返回一个表示该 Integer 值的 String 对象
* 1.2 String:调用String的valueOf方法;String.valueOf(34) (任何数据类型都适用)
* 2.字符串=>包装类:
* 1.1 包装类的构造方法:
* Integer(String s) 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
*/
/**
* 包装类 <==> 基本数据类型
*/
private static void fun3() {
// 1.基本数据类型=>包装类
// 1.1 Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。
Integer in = new Integer(20);
// 1.2 static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例。
Integer in1 = Integer.valueOf(20);
// 2.包装类=>基本数据类型
// int intValue() 以 int 类型返回该 Integer 的值。
int i = in1.intValue();
}
/**
* 基本数据类型 =>字符串
*/
private static void fun2() {
// 1.最简单: +"" (任何数据类型都适用)
String str1 = 1 + "";
System.out.println(str1 + 1);
// 2.调用String的valueOf方法;String.valueOf(34) (任何数据类型都适用)
String str2 = String.valueOf('d');
System.out.println(str2);
// 3.调用包装类中的toString方法;Integer.toString(34) 或无参toString()
String dString = Double.toString(2.2);
System.out.println(dString);
}
/**
* 字符串 =>基本数据类型
* 包装类中 parseXXX(String s)方法
*1.字符串必须为给定 的类型,否则会报java.lang.NumberFormatException 数字格式化异常
*2.小数不能转换成整数,整数可以转换成小数
*/
private static void fun1() {
// 通过包装类实现将字符串类型数据转换成基本数据类型
// Integer 中:static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析。
int i = Integer.parseInt("1"+1);
System.out.println(i + 2);
double d = Double.parseDouble("10");
System.out.println(d);
}
}
2.自动装箱拆箱:
package vp.lu.demo3;
/**
- jdk1.5新特性:
-
- 装箱:将基本数据类型封装入对应的包装类
-
自动装箱:不需要代码干涉可以自己完成上述操作
-
- 拆箱:将包装类中的内容转换成对应基本数据类型
-
自动拆箱:不需要代码干涉可以自己完成上述操作
- @author 18875
*/
public class Demo2 {
public static void main(String[] args) {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(ij);// false 对象地址
System.out.println(i.equals(j));// true 继承Object重写equals,比较的对象数据
System.out.println("=================");
Integer a = 500;//Integer integer=Integer.valueOf(500)
//integer=new Integer(500);
Integer b = 500;
System.out.println(a==b);//false
System.out.println(a.equals(b));//true
System.out.println("===================");
//数据在byte(-128~127)范围内,JVM不会从新new对象
Integer aa = 127; // Integer aa = new Integer(127)
Integer bb = 127; // Integer bb = aa;
System.out.println(aa==bb); //true
System.out.println(aa.equals(bb));//true
/* Integer integer = 1;
int i = integer * 20;
System.out.println(i);*/
}
}
3.计算自己活了多少天:
package anlie;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
//计算自己活了多少天;
public class Demo2 {
public static void main(String[] args) throws ParseException {
show();
show1();
}
private static void show1() {
//设置两个Calendar对象;
Calendar today=Calendar.getInstance();// 当前时间的日历
Calendar birth=Calendar.getInstance();// 出生时间的日历
//设置出生日期;
birth.set(1996,1,1);
// long getTimeInMillis() 返回此 Calendar 的时间值,以毫秒为单位
//转化为毫秒值进行计算;
long rightNow = today.getTimeInMillis();
long birthtime = birth.getTimeInMillis();
//计算
long day=(rightNow-birthtime)/1000/60/60/24/365;
if (day<0) {
System.out.println("你还没出生");
}else {
System.out.println("你的年龄:" +day+"岁");
}
}
private static void show() throws ParseException {
//键盘录入;
Scanner input=new Scanner(System.in);
System.out.println("请输入你的出生日期");
//用string进行接收;
String birthString=input.next();
//正则表达式进行规定输入的格式;
String regex="[\\d]{4}-[\\d]{2}-[\\d]{2}";
//用if进行判断输入的格式是否正确;
if (birthString.matches(regex)) { //进行匹配;
//输入的格式
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
// 将字符串转换成date类型
Date birthday = format.parse(birthString);
// 调用Date类中getTime()方法,转换成毫秒值,因为date类型无法进行计算;
long birthtime = birthday.getTime();
// 当前时间的毫秒值
long rightnow = System.currentTimeMillis();
if (birthtime > rightnow) {//判断是否已出生;
System.out.println("你还未出生");
return; //进行结束判断;
}
//进行计算差值;
long day = (rightnow - birthtime)/1000/60/60/24;
System.out.println("你活了"+ day +"天");
}else {
System.out.println("你输入的格式有误");
}
}
}