Java中实用类:Date、Calendar、Math、Random、String、StringBuffer的用法
枚舉
枚舉類是一種特殊的類,里面的值全部都是靜態常量,每一個枚舉值都相當于一個本類對象,
只不過,調用對象的toString方法打印的是對象名。如:
實際上,每一個枚舉值都相當于一個本類對象,所以每聲明一個枚舉值,相當于執行以下代碼:
public static final BLUE=new Color();
public static final RED=new Color();
public static final YELLOW=new Color();
public static final GREEN=new Color();
注意:①在枚舉類中,枚舉值必須放在第一行,其他所有代碼,必須放在枚舉值的后面。
②枚舉類中的構造函數,只能是私有化的,在聲明枚舉值時,自動調用。如:
enum Color{BLUE,RED,YELLOW,GREEN,BLACK;private Color(){System.out.println("hahahhaha");} }實用類
Date類的常用方法
1、Date空參構造,取到當前時間
setTime():傳入一個長整型,重新設置date時間
2、傳入一個long類型的時間戳,取到指定時間
date.getTime(),取到一個時間的時間戳,從0時區,1970年1月1日0:0:0到當前時間的毫秒數
3、compareTo(date2):前面>參數,返回1;前面<參數,返回-1;前面=參數 返回0
equals():比對兩個時間是否相等,返回true或false
4、before():檢測一個時間是不是在指定時間之前,返回true或false
after():檢測一個時間是不是在指定時間之后,返回true或false
代碼實例:
Date date=new Date(); System.out.println(date); //運行結果:Sun Apr 15 08:34:05 CST 2018 date.setTime(1000*60*60*24); System.out.println(date); //運行結果:Fri Jan 02 08:00:00 CST 1970 Date date2=new Date(date.getTime()-1000*60*60); System.out.println(date2); //運行結果:Fri Jan 02 07:00:00 CST 1970 System.out.println(date.compareTo(date2)); //運行結果:1 System.out.println(date.before(date2)); //運行結果:false?
SimpleDateFormat:對日期格式進行格式化
實例化對象時,傳入格式化參數,用字母代表對應部分
字母 日期或時間元素 表示 示例
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
d 月份中的天數 Number 10
E 星期中的天數 Text Tuesday; Tue
H 一天中的小時數(0-23) Number 0
h am/pm 中的小時數(1-12) Number 12
m 小時中的分鐘數 Number 30
s 分鐘中的秒數 Number 55
1、format():用于傳入一個Date類型的參數,并返回格式化之后的字符串
2、parse(String text, ParsePosition pos) 從字符串:中解析文本以產生一個 Date 。
將字符串中的時間轉成Date類型,要求傳入的字符串格式,必須與實例化時的格式完全一致
3、toPattern():返回描述此日期格式的模式字符串。
實例代碼:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年M月d日hh:mm:ss.SSS E"); String s=sdf.format(date); System.out.println(s); //運行結果:2018年4月15日08:35:41.492 星期日 System.out.println(sdf.toPattern()); //運行結果:yyyy年M月d日hh:mm:ss.SSS E?
Calendar類的常用方法
1、Calendar日歷類是一個抽象類,不能直接通過new拿到對象,必須使用Calendar.getInstance();拿到
Calendar calendar=Calendar.getInstance(); System.out.println(calendar);//運行結果:java.util.GregorianCalendar[time=1523752945958,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=3,WEEK_OF_YEAR=16,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,DAY_OF_YEAR=105,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=8,HOUR_OF_DAY=8,MINUTE=42,SECOND=25,MILLISECOND=958,ZONE_OFFSET=28800000,DST_OFFSET=0]2、根據calendarde提供的常量,獲得指定字段
System.out.println(calendar.get(calendar.DAY_OF_MONTH));
3、getTime()返回一個日期對象
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年M月d日hh:mm:ss.SSS E"); Date date4=calendar.getTime(); System.out.println(sdf.format(date4)); //運行結果:2018年4月15日10:11:36.846 星期日//輸出今天是周幾 String[] arr={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; int i=calendar.get(calendar.DAY_OF_WEEK)-1; System.out.println(arr[i]);?
Math類的常用方法
1、abs(double a)
返回值為 double絕對值。
2、cbrt(double a)
返回 double值的多維數據集根。
3、sqrt(double a)
返回的正確舍入正平方根 double值。
4、pow(double a, double b)
將第一個參數的值返回到第二個參數的冪。 a的b次方
5、floor(double a)
返回小于指定浮點數的第一個double值,等于一個數學整數。
6、ceil(double a)
返回大于指定浮點數的第一個 double值,等于一個數學整數。
7、round(a) (常用)進行四舍五入,如果傳入double返回long,傳入float返回int
8.rint(double a)
返回與參數最接近值的 double值,并且等于數學整數。 如:10.5與10和11同樣接近,返回偶數10
9、random()
返回值為 double值為正號,大于等于 0.0 ,小于 1.0 。?
代碼實例:
System.out.println(Math.PI); //運行結果:3.141592653589793 System.out.println(Math.abs(-10)); //運行結果:10 System.out.println(Math.cbrt(27)); //運行結果:3.0 System.out.println(Math.sqrt(9)); //運行結果:3.0 System.out.println(Math.max(19,29)); System.out.println(Math.min(19,29)); //運行結果:29 //運行結果:19 System.out.println(Math.pow(10,3)); //運行結果:1000.0 System.out.println(Math.floor(-10.5)); //運行結果:-11.0 System.out.println(Math.ceil(-10.5)); //運行結果:-10.0 System.out.println(Math.round(11.2)); System.out.println(Math.round(11.8)); System.out.println(Math.round(10.34567*Math.pow(10, 3))/Math.pow(10, 3)); //運行結果:11 //運行結果:12 //運行結果:10.346 System.out.println(Math.random()); //運行結果:0.6991040857245453Random類的常用方法
1、兩種構造:
① 空參
② 傳入一個種子數,只要種子數相同,在相同次數取到的數肯定相同,偽隨機數
2、System.currentTimeMillis()獲得當前時間戳作為種子數
Date date=new Date(); System.out.println(date.getTime()); System.out.println(System.currentTimeMillis()); Random ran=new Random(System.currentTimeMillis());3、隨機取數
//98到115取數(從0-7取隨機數再加98) Random ran2=new Random(); //0-7取隨機數 System.out.println(ran2.nextInt(8)); System.out.println(ran2.nextInt(8)+98);//生成兩位隨機數(10-99) System.out.println(ran2.nextInt(90)+10);String 類的常用方法
1、length():返回字符串的長度。
注意:length()是一個方法,使用時注意不能掉()
2、s1.equals(s2):判斷字符串是否相等;
[==和equals的區別]
.equals()的比對原理,是判斷兩個字符串的每一個字符是否相等;
==的對比原理,是判斷兩個字符串中的存儲地址是否相等。
3、s1.equalsIgnoreCase(s2):忽略大小寫比對;
s1.toLowerCase():將所有字符都轉化為小寫
s2.toUpperCase():將所有字符都裝化為大寫
4、連接字符串:
①使用加號連接
②使用s1.concat(s2),將s2連接到s1的后面,并返回一個新字符串
5、indexOf("c"):在字符串中查找指定的字符或子串第一次出現的位置,并返回其下標,如果沒有找到返回-1;
可以接受字符串、字符、整數類型的參數,如果是傳入整數,將根據ASCII碼自動轉為字符(A-65 a-97);
lastIndexOf():在字符串中查找指定的字符或子串最后一次出現的位置,并返回其下標,如果沒有找到返回-1;
6、substring():截取字符串的指定位置,返回一個新的子串;
①傳入一個參數,表示起始下標,將從此下標開始,一直截到字符串最后;
②傳入兩個參數,表示起始下標和結束下標,為左閉右開區間,包含起始不包含結束
7、trim():去掉字符串兩端的空格(中間的空格不能去掉)
8、split(""):傳入指定字符,將字符串分割為多個子串,返回一個字符串類型的數組
如果傳入一個空字符串,則將原字符串的每一個字符都進行分割。
split(" ",30):第二個參數,傳入一個參數,表示將當前字符串分為幾部分;
如果傳入的整數,小于原來分割的總部分,則剩余的區域將不再分割;
?
StringBuffer類的常用方法
StringBuffer是String的增強版
StringBuffer與String的最大區別在于:StringBuffer是可變可追加的,而String一旦聲明不可改變,不能插入;
1、toString():將StringBuffer類型,轉成String類型。
但在輸出時,可以不用轉換,將自動進行轉換。
2、append():在原字符串的最后追加新的字符
①原字符串會被直接改變,同時還會將追加之后的字符串返回
②append可以接受各種類型的參數,會自動轉成字符串后追加到原字符串最后。
3、delete():傳入兩個下標,表示刪除這兩個下標之間的字符,左閉右開區間。
4、insert(3, "abc"):在原字符串的指定位置插入新的子串
新的子串可以是任何數據類型,其他數據類型會自動轉為字符串
轉載于:https://www.cnblogs.com/hjcblog/p/8846019.html
總結
以上是生活随笔為你收集整理的Java中实用类:Date、Calendar、Math、Random、String、StringBuffer的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go 语言系列 (四)位操作用法
- 下一篇: xshell 快速复制打开之前用过的ss