8種基本數據類型的8種包裝類 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean Integer a=127; Integer b=127;//虛擬機 ...
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 + "]"; } }