java學習--java.util包中常用類
java.util包被稱為java工具包,裏面包含大部分的工具類
Random 隨機數類
new Random()
rd.nextInt()
rd.nextInt(100)
Scanner 掃描器類
Scanner sc = new Scanner(system.in);
String str = sc.next();
String str1 = sc.nextLine();
int t = sc.nextInt();
float t = sc.nextFloat();
Date 日期類
Date d = new Date(); 當前時間
Date d = new Date(long); 指定的時間
d.getTime();獲得當前時間的毫秒數
日期格式化類
SimpleDataFormat 格式化日期時間的類
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
String s = sdf.format(d);
Calendar 日歷類
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int min = c.get(Calendar.MINUTE);
int sec = c.get(Calendar.SECOND);
int w = c.get(Calendar.DAY_OF_WEEK);
ps:Calendar類是一個抽象類,需要通過getInstance()方法來實現
Calendar與Date類之間的轉換分別是getTime()和setTime()
Calendar對象獲取month將會比實際的月份少一個月,是從下標為0開始的
Calendar對象獲取day_of_week是獲取到當前星期,返回的是重這周日到當前禮拜的天數。
TimerTask 定時任務類
Timer 定時器
定義一個類繼承TimerTask,重寫run方法
創建一個Timer對象
創建一個xxTask對象
啟動任務
在指定的時間指定任務
t.schedule(task, date);
延遲一定時間執行
t.schedule(task, 500);
延遲一定時間執行,每隔一定時間重復執行一次
t.schedule(task, 5000, 1000);
在指定的時間開始執行,每隔一定時間重復執行一次
t.schedule(task, d, 1000);
Arrays 數組類
binarySearch(數組,值) 用二分法查找值在數組中出現的下標位置,前提條件,數組必須是有序的
sort(數組) 對數組用快排法進行排序
toString(數組) 將數組轉換成字符串形式
copyOf(數組,長度)拷貝數組,得到一個新數組
附:控制臺日歷查詢程序
1 package com.work.calendar; 2 3 import java.util.Calendar; 4 import java.util.Scanner; 5 6 7 public class CalendarDemo { 8 int year,month,day=0; 9 //定義一個存放日期天數的數組 10 int[] days = {31,28,31,30,31,30,31,31,30,31,30,31}; 11 Calendar cad ; 12 /** 13 * 無參構造方法中獲取當前日期 14 */ 15 public CalendarDemo(){ 16 cad= Calendar.getInstance(); 17 this.year = cad.get(Calendar.YEAR); 18 this.month=cad.get(Calendar.MONTH)+1; 19 } 20 /** 21 * 給日歷對象傳入一個具體的日期 22 * @param year 23 * @param month 24 * 2018年8月26日 25 */ 26 public void setCalendarDemo(int year,int month){ 27 this.year = year; 28 this.month = month; 29 cad = Calendar.getInstance(); 30 cad.set(Calendar.YEAR, year); 31 cad.set(Calendar.MONTH,month-1); 32 } 33 /** 34 * 將獲取到的日歷打印 35 * 36 * 2018年8月26日 37 */ 38 public void link() { 39 if(year/4==0&&year/100!=0||year%400 ==0) { 40 days[1]=29; 41 }else { 42 days[1]=28; 43 } 44 System.out.println(year+"年"+month+"月"); 45 System.out.println("日\t 一\t 二\t 三\t 四\t 五\t 六"); 46 cad.set(Calendar.DAY_OF_MONTH, 1); 47 int first = cad.get(Calendar.DAY_OF_WEEK); 48 for(int i = 0;i<first-1;i++) { 49 System.out.print("\t"); 50 } 51 for(int i=0;i<days[month-1];i++) { 52 System.out.print(i+1+"\t"); 53 if(first==7) { 54 first=0; 55 System.out.println(); 56 } 57 first++; 58 } 59 } 60 public static void main(String[] args) { 61 int month,year; 62 boolean flag = true; 63 Scanner sc = new Scanner(System.in); 64 System.out.println("請輸入年份和月份"); 65 year = sc.nextInt(); 66 month = sc.nextInt(); 67 CalendarDemo c = new CalendarDemo(); 68 c.setCalendarDemo(year, month); 69 c.link(); 70 while(flag) { 71 System.out.println(); 72 System.out.println("輸入a,d可以查看上個月,下個月的日歷"); 73 System.out.println("輸入r可以退出程序"); 74 char operation = sc.next().charAt(0); 75 if(operation==‘a‘) { 76 if(month==1) { 77 year = year - 1; 78 month = 12; 79 }else { 80 month=month-1; 81 } 82 }else if(operation ==‘d‘){ 83 if(month==12) { 84 year = year+1; 85 month = 1; 86 }else { 87 month=month+1; 88 } 89 }else if(operation ==‘r‘) { 90 flag = false; 91 } 92 c.setCalendarDemo(year, month); 93 c.link(); 94 System.out.println(); 95 System.out.println("程序已退出"); 96 } 97 sc.close(); 98 } 99 }CalendarDemo
java學習--java.util包中常用類