1. 程式人生 > >第1章基本型別包裝類

第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新特性:
    1. 裝箱:將基本資料型別封裝入對應的包裝類
  •  自動裝箱:不需要程式碼干涉可以自己完成上述操作
    
    1. 拆箱:將包裝類中的內容轉換成對應基本資料型別
  •  自動拆箱:不需要程式碼干涉可以自己完成上述操作
    
  • @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("你輸入的格式有誤");
	}
	
}

}