第1章基本型別包裝類
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("你輸入的格式有誤");
}
}
}