第5章字符串、日期等常用類_第1頁(yè)
第5章字符串、日期等常用類_第2頁(yè)
第5章字符串、日期等常用類_第3頁(yè)
第5章字符串、日期等常用類_第4頁(yè)
第5章字符串、日期等常用類_第5頁(yè)
已閱讀5頁(yè),還剩76頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第五章字符串、日期等常用類中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC目錄5.1 字符串字符串5.2 時(shí)間和日期時(shí)間和日期5.3 Math類類中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1 字符串5.1.1 字符串的創(chuàng)建5.1.2 字符串的常用方法5.1.3 字符串與基本數(shù)據(jù)的相互轉(zhuǎn)化5.1.4 對(duì)象的字符串表示5.1.5 字符串與字符數(shù)組5.1.6 正則表達(dá)式 5.1.7 StringTokenizer類5.1.8 Scanner類5.1.9 StringBuffer類中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)

2、院軟件系UPC5.1.1 字符串的創(chuàng)建 用用java.lang.String類的對(duì)象表示字符串類的對(duì)象表示字符串 字符串類型不是基本類型,而是引用類型 字符串變量是一個(gè)對(duì)象 Java基于Unicode字符集,因此字符串中可包含我們常用的幾乎所有字符中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC1、字符串常量、字符串常量 例如:你好 , 1234.987 , HelloWorld! 注意用雙引號(hào)括起2、字符串的聲明、字符串的聲明 例如:String s; /s=null中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC3、創(chuàng)建字符串、創(chuàng)建字符串

3、String類的構(gòu)造方法類的構(gòu)造方法public String()public String(String original)public String(char a) public String(char a, int offset, int count) public String(int codePoints, int offset, int count)空串空串由字符串對(duì)象創(chuàng)建由字符數(shù)組創(chuàng)建由字符數(shù)組或Unicode碼數(shù)組創(chuàng)建1)offset:數(shù)組起始元素下標(biāo)2)count:截取的個(gè)數(shù)中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC創(chuàng)建字符串舉例String

4、s = new String(Hello!);char charArr = H, e, l, l, o, !;String s = new String(charArr);s = new String(charArr,0,4);s的值:Hell中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC4、創(chuàng)建字符串、創(chuàng)建字符串引用引用字符串常量字符串常量 可以使用字符串常量去創(chuàng)建一個(gè)對(duì)象,例如:可以使用字符串常量去創(chuàng)建一個(gè)對(duì)象,例如:String s = Hello!;沒(méi)有用new創(chuàng)建?中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC右邊的代碼中,s2

5、指向了新字符串實(shí)體,而不是已存在的常量Hello!String s1 = Hello!;String s2 = Hello!;System.out.println (s1 = s2);運(yùn)行結(jié)果:trueString s1 = Hello!;String s2 = new String(Hello!);System.out.println(s1 = s2);運(yùn)行結(jié)果:false有趣的問(wèn)題:為什么?為什么?中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC補(bǔ)充:Java中判斷空串與空對(duì)象 空字符串空字符串:長(zhǎng)度為:長(zhǎng)度為0的字符串,即:的字符串,即: 空對(duì)象空對(duì)象:Stri

6、ng對(duì)象的引用為空,即:對(duì)象的引用為空,即:null 舉例:舉例:sNULLsHello!0 x3ABs0 x58F長(zhǎng)度為0的串String s=Hello!;String s=;String s=null;0 x3AB0 x58F中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC如果想判斷一個(gè)如果想判斷一個(gè)String對(duì)象是否是空串,有對(duì)象是否是空串,有以下方法:以下方法: s.equals() s.length() 1 s.isEmpty()如果想判斷一個(gè)如果想判斷一個(gè)String對(duì)象是否是空對(duì)象,對(duì)象是否是空對(duì)象,可以用:可以用:s = null 中國(guó)石油大學(xué)(華

7、東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1.2 字符串的常用方法 public int length() 獲取一個(gè)字符串的長(zhǎng)度,例如:String tom= 我們是學(xué)生;tom.length();/值是5。 public boolean equals(String s) 比較兩個(gè)字符串是否相等(非同一) 例如:s.equals()中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC public boolean startsWith(String s) 判斷字符串的前綴是否是指定字符串s 例如:String tom=“天氣預(yù)報(bào),陰有小雨”; Tom.

8、startsWith(“天氣”); 值為true public boolean endsWith(String s) 判斷字符串的后綴是否是指定字符串s 例如:String tom=“天氣預(yù)報(bào),陰有小雨”; Tom.endsWith(“大雨”); 值為false Tom.endsWith(“小雨”); 值為true中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC public boolean regionMatches(int firstStart, String other, int ortherStart, int length) 從當(dāng)前字符串firstStart

9、指定的位置開(kāi)始,取長(zhǎng)度為length的一個(gè)子串1; other是比較字符串,從othertStart指定的位置開(kāi)始,取長(zhǎng)度為length的另一個(gè)子串2; 如果兩個(gè)子串相同則返回true,否則返回false。中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC public int compareTo(String s) 當(dāng)前字符串與s相同,返回值0; 當(dāng)前字符串大于s,返回正值; 當(dāng)前字符串小于s,返回負(fù)值。 原則:原則: 依次取出兩個(gè)字符串的字符,比較其Unicode碼 若字符串s1是s2的前綴,即:s1的長(zhǎng)度小于s2,則s1小于s2中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中

10、國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPCpublic class SortString public static void sort(String a) int count=0; for(int i=0;ia.length-1;i+) for(int j=i+1;ja.length;j+) if(pareTo(ai)0) String temp=ai; ai=aj; aj=temp; 將字符串?dāng)?shù)組中的單詞按照字典順序排列中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPCimport java.util.*;public class Example5_1 public s

11、tatic void main(String args) String a=melon,apple,pear,banana; System.out.println(使用SortString類的方法按字典序排列數(shù)組:); SortString.sort(a); for(int i=0;ia.length;i+) System.out.print( +ai); System.out.println(); 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC public int indexOf (String s) 查找子串s的出現(xiàn)位置,并返回出現(xiàn)的位置; 如果未包含子串s,

12、則返回-1。 重載方法:重載方法:indexOf(String s ,int startpoint) 從當(dāng)前串的startpoint位置處開(kāi)始查找子串s的出現(xiàn)位置,并返回出現(xiàn)的位置; 如果未檢索到子串s,則返回-1。 類似方法:類似方法:lastIndexOf (String s) 查找子串s的出現(xiàn)位置,并返回出現(xiàn)的位置; 如果未包含子串s,則返回-1。中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC例如 :String tom = I am a good cat; tom.indexOf(a); tom.indexOf(good,2); tom.indexOf(a,

13、7); tom.indexOf(w,2); 2713-1中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC public String substring(int startpoint) 獲取子串,該子串從startpoint開(kāi)始到串末尾 重載方法:重載方法:substring(int start ,int end) 獲取子串,該子串從start開(kāi)始到end 注意:不包括end處的字符,例如:Hello.substring(4,5)運(yùn)行結(jié)果:o中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC public String replaceAll(S

14、tring oldString , String newString) 用newString替換oldString public String trim() 去掉字符串前后的空格 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC public String split(String reg) 以reg作為分隔符,獲取分隔后的字符串?dāng)?shù)組 例如:String sArr = 1,100.split(,);System.out.println(sArr0+ +sArr1);運(yùn)行結(jié)果:1 100String sArr = 1,100.split(,); System.out.p

15、rintln(sArr0+ +sArr1);運(yùn)行結(jié)果:1 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1.3 字符串與基本數(shù)據(jù)的相互轉(zhuǎn)化1.使用基本類型的使用基本類型的提供的靜態(tài)方法:提供的靜態(tài)方法:“parse類型類型”Integer.parseInt(123);Byte.parseByte(“4);Short.parseShort(5);Long.parseLong(“6);Float.parseFloat(“7.17);Double.parseDouble(“8.1888);中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1

16、.3 字符串與基本數(shù)據(jù)的相互轉(zhuǎn)化2.可以使用可以使用String類的類方法類的類方法valueOf將數(shù)值轉(zhuǎn)將數(shù)值轉(zhuǎn)化為字符串。化為字符串。 public static String valueOf(byte n) public static String valueOf(int n) public static String valueOf(long n) public static String valueOf(float n) public static String valueOf(double n)例如:例如: String str = String.valueOf(12313.987

17、6); 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1.4 對(duì)象的字符串表示 Object類有一個(gè)類有一個(gè)public String toString()方法,方法,可以獲得該類對(duì)象的字符串表示。返回的字符可以獲得該類對(duì)象的字符串表示。返回的字符串的一般形式為:串的一般形式為: 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPCpublic class TV String name; public TV() public TV(String s) name=s; public String toString() String oldSt

18、r=super.toString(); return oldStr+n這是電視機(jī),品牌是:+name; 例如:中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPCimport java.util.Date; public class Example5_2 public static void main(String args) Date date = new Date(); System.out.println(date.toString(); TV tv = new TV(長(zhǎng)虹電視); System.out.println(tv.toString(); 中國(guó)石油大學(xué)(華

19、東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1.5 字符串與字符數(shù)組 字符串實(shí)際上是由字符數(shù)組組成的,可以用字符串實(shí)際上是由字符數(shù)組組成的,可以用 以下方法得到:以下方法得到: public void getChars(int start,int end,char c ,int offset ) 將字符串從位置start到end(不包含end)位置上的字符拷貝到數(shù)組c中,從數(shù)組c的offset處開(kāi)始存放。 注意:必須保證數(shù)組c能容納下要被拷貝的字符數(shù)中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC public char toCharArray()

20、得到一個(gè)字符數(shù)組,該數(shù)組的長(zhǎng)度與字符串的長(zhǎng)度相等。public class Example5_4 public static void main(String args) char a,b; String s=1945年8月15日是抗戰(zhàn)勝利日; a=new char4; s.getChars(11,15,a,0); System.out.println(a); b=十一長(zhǎng)假期間,學(xué)校都放假了.toCharArray(); for(int i=0;i 0中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPCimport java.util.*;public class Exa

21、mple5_3 public static void main(String args) String s=you are welcome(thank you),nice to meet you; StringTokenizer fenxi=new StringTokenizer(s,() ,); int number=fenxi.countTokens(); while(fenxi.hasMoreTokens() String str=fenxi.nextToken(); System.out.print(str+ ); System.out.println(共有單詞:+number+個(gè));

22、 StringTokenizer舉例中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1.8 Scanner類 字符串分析器字符串分析器,能夠從一個(gè)字符串中,能夠從一個(gè)字符串中解析解析出程出程序所需要的序所需要的。 在java.util包中,使用時(shí)需import1.解析從鍵盤(pán)輸入的數(shù)據(jù)解析從鍵盤(pán)輸入的數(shù)據(jù)通過(guò)Scanner對(duì)象調(diào)用下列方法,讀取用戶輸入的基本類型的數(shù)據(jù):n nextBoolean()、nextByte()、nextShort()、nextInt()、 nextLong()、nextFloat()、nextDouble()n next() :以空格或回

23、車鍵作為結(jié)束符n nextline():以回車鍵作為結(jié)束符中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPCimport java.util.Scanner;public class Example5_4 public static void main (String args ) System.out.println(請(qǐng)輸入若干個(gè)數(shù),每輸入一個(gè)數(shù)回車確認(rèn)); System.out.println(最后輸入數(shù)字0結(jié)束輸入操作); Scanner reader=new Scanner(System.in); double sum=0; double x = reader.

24、nextDouble(); while(x!=0) sum=sum+x; x=reader.nextDouble(); System.out.println(sum=+sum); Scanner類舉例中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1.8 Scanner類2.使用默認(rèn)分隔標(biāo)記解析字符串使用默認(rèn)分隔標(biāo)記解析字符串Scanner將作為分割標(biāo)記來(lái)解析字符串中的單詞。 調(diào)用方法依次返回字符串中的單詞 調(diào)用方法判斷是否解析結(jié)束 對(duì)于解析出的數(shù)字單詞,可以用nextInt()等轉(zhuǎn)化為相應(yīng)類型的數(shù)據(jù) 對(duì)于非數(shù)字單詞,如果用nextInt()等方法會(huì)發(fā)生Input

25、MismatchException異常,在異常處理時(shí)可以調(diào)用next()方法返回非數(shù)字化單詞中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPCimport java.util.*;public class Example5_5 public static void main(String args) String cost= TV cost 876 dollar.Computer cost 2398 dollar.telephone cost 1278 dollar.; Scanner scanner = new Scanner(cost); double sum=0;

26、 while(scanner.hasNext() try double price=scanner.nextDouble(); sum=sum+price; System.out.println(price); catch(InputMismatchException exp) String t=scanner.next(); System.out.println(總消費(fèi):+sum+元); Scanner類舉例中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1.8 Scanner類3.使用正則表達(dá)式作為分割標(biāo)記解析字符串使用正則表達(dá)式作為分割標(biāo)記解析字符串Scan

27、ner對(duì)象可以調(diào)用方法將正則表達(dá)式作為分割標(biāo)記。如:作為分割標(biāo)記解析字符串,可以找出所有非數(shù)字字符串中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPCimport java.util.*;public class Example5_6 public static void main(String args) String cost= 話費(fèi)清單:市話費(fèi)76.89元,長(zhǎng)途花費(fèi)167.38元,短信費(fèi)12.68元; Scanner scanner = new Scanner(cost); scanner.useDelimiter(0123456789.+); double su

28、m=0; while(scanner.hasNext() try double price=scanner.nextDouble(); sum=sum+price; System.out.println(price); catch(InputMismatchException exp) String t=scanner.next(); System.out.println(總通信費(fèi)用:+sum+元); Scanner類舉例中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.1.9 StringBuffer類 String對(duì)象是不可修改的,即對(duì)象是不可修改的,即Stri

29、ng對(duì)象對(duì)象一旦一旦創(chuàng)建,那么創(chuàng)建,那么實(shí)體是不可以再發(fā)生變化實(shí)體是不可以再發(fā)生變化的。的。 執(zhí)行執(zhí)行String的的trim、replaceAll、subString等等方法時(shí),方法時(shí),實(shí)質(zhì)上是創(chuàng)建了一個(gè)新的實(shí)體,然后實(shí)質(zhì)上是創(chuàng)建了一個(gè)新的實(shí)體,然后改變改變String對(duì)象的引用對(duì)象的引用。String s = Hello! ;s = s.trim(); Hello! s0 xAB3Hello!s0 xBCD中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC 如果一個(gè)字符串經(jīng)常發(fā)生改變,顯然會(huì)浪費(fèi)大如果一個(gè)字符串經(jīng)常發(fā)生改變,顯然會(huì)浪費(fèi)大量?jī)?nèi)存量?jī)?nèi)存 StringBu

30、ffer類能類能創(chuàng)建可修改的字符串序列創(chuàng)建可修改的字符串序列,也就是說(shuō),該類的對(duì)象的實(shí)體的內(nèi)存空間可以也就是說(shuō),該類的對(duì)象的實(shí)體的內(nèi)存空間可以自動(dòng)的改變大小,自動(dòng)的改變大小,適合存放一個(gè)可變的字符序適合存放一個(gè)可變的字符序列列。 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC1、StringBuffer類的構(gòu)造方法類的構(gòu)造方法 StringBuffer():默認(rèn)容量16個(gè)字符,可自動(dòng)擴(kuò)充 StringBuffer(int size):指定容量size StringBuffer(String s):容量為s的長(zhǎng)度外加16個(gè)字符中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油

31、大學(xué)(華東)計(jì)通學(xué)院軟件系UPC2、常用方法、常用方法 append():追加字符串,有許多重載方法 如:append(String s),append(int n),append(Object o)等 char charAt(int n):獲取指定位置字符 void setCharAt(int n,char c):替換指定字符 StringBuffer insert(int n,String s):插入字符串,將s插入到參數(shù)n指定的位置中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC StringBuffer reverse():翻轉(zhuǎn)字符串 StringBuffer

32、 delete(int start,int end):刪除指定位置范圍的字符,從start到end-1 StringBuffer replace(int start,int end ,String s):替換指定位置范圍的字符,從start到end-1中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC 例如:例如:public class Example5_6 public static void main(String args) StringBuffer str=new StringBuffer(); str.append(大家好); System.out.prin

33、tln(str:+str); System.out.println(length:+str.length(); System.out.println(capacity:+str.capacity(); str.setCharAt(0 ,w); str.setCharAt(1 ,e); System.out.println(str); str.insert(2, are all); System.out.println(str); int index=str.indexOf(好); str.replace(index,str.length(), right); System.out.printl

34、n(str); 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.2 時(shí)間和日期 Java中,表達(dá)日期需要用到以下幾個(gè)常用類:中,表達(dá)日期需要用到以下幾個(gè)常用類: java.util.Date 表示日期 具體類 java.util.Calendar 表示日歷 抽象類,java提供了java.util.GregorianCalendar作為其具體類中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC java.text.DateFormat 表示日期顯示格式 抽象類,Java提供了java.text.SimpleDateFormat作為其具體類

35、另外,還有Time類表示具體時(shí)間 由于Date和Calendar類也可以操作時(shí)間,因此Time類使用頻率相對(duì)較低中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC Date與與Calendar 最早的JDK只有Date,沒(méi)有Calendar,由于Date類存在設(shè)計(jì)缺陷,因此逐漸被Calendar類代替 目前,Date類只有有限的幾個(gè)方法可以使用,出于向下兼容性考慮,Java仍然保留了Date類的原生方法,但是被標(biāo)識(shí)為“已廢棄”,不建議使用 Time類應(yīng)用情況與Date類情況類似中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.2.1 Date

36、類 獲取當(dāng)前日期獲取當(dāng)前日期 Date d = new Date(); 如:System.out.println(d); 設(shè)置日期設(shè)置日期 d.setYear(81); d.setMonth(9); d.setDate(24); 得到的日期為:得到的日期為:1981年年10月月24日日0代表1月代表相距1900年的年數(shù) 獲取日期獲取日期 d.getXXX();中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC 獲取當(dāng)前時(shí)間獲取當(dāng)前時(shí)間 使用Calendar類的static方法getInstance()可以初始化一個(gè)日歷對(duì)象,默認(rèn)指向當(dāng)前時(shí)間,如:Calendar c =

37、 Calendar.getInstance(); 注意注意:實(shí)際上使用了:實(shí)際上使用了上轉(zhuǎn)型上轉(zhuǎn)型,getInstance()返返回了一個(gè)回了一個(gè)GregorianCalendar對(duì)象,并上轉(zhuǎn)型對(duì)象,并上轉(zhuǎn)型為為Calendar對(duì)象對(duì)象5.2.2 Calendar類中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC 設(shè)置日歷的設(shè)定日期設(shè)置日歷的設(shè)定日期 void set(int year,int month,int date); void set(int year,int month, int date, int hour, int minute,int second)

38、; void setTime(Date d); 例如:例如: c.set(2013,11,10); c.set(194,4,10); c.setTime(new Date();0代表1月194代表公元194年中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC 獲取日歷的設(shè)定日期信息獲取日歷的設(shè)定日期信息 int get(int field):可以獲取有關(guān)年份、月份、小時(shí)、星期等信息,參數(shù)field的有效值由Calendar的靜態(tài)常量指定,例如:calendar.get(Calendar.MONTH); getTime():返回一個(gè)Date對(duì)象 getTimeInMill

39、is():返回長(zhǎng)整數(shù),表示距離1970年1月1日零時(shí)零分零秒的毫秒數(shù)中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC 例如:例如:import java.util.*;public class Example5_7 public static void main(String args) Calendar calendar=Calendar.getInstance(); int year = calendar.get(Calendar.YEAR), month = calendar.get(Calendar.MONTH)+1, day = calendar.get(C

40、alendar.DAY_OF_MONTH), hour = calendar.get(Calendar.HOUR_OF_DAY), minute = calendar.get(Calendar.MINUTE), second = calendar.get(Calendar.SECOND); System.out.print(現(xiàn)在的時(shí)間是:); System.out.print(+year+年+month+月+day+日); System.out.println( +hour+時(shí)+minute+分+second+秒); int y = 2012,m = 9,d = 1; 中國(guó)石油大學(xué)(華東)計(jì)通

41、學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC calendar.set(y,m-1,d); /將日歷翻到2012年九月一日,注意8表示九月 long time1 = calendar.getTimeInMillis(); y = 2016; m = 7; day = 1; calendar.set(y,m-1,d); /將日歷翻到2016年七月一日 long time2 = calendar.getTimeInMillis(); long subDay = (time2-time1)/(1000*60*60*24); System.out.println(+new Date(time2)

42、; System.out.println(與+new Date(time1); System.out.println(相隔+subDay+天); 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC Calendar的常用方法的常用方法 add(int field, int amount):增加field指定的年份、月份、小時(shí)等數(shù)量 before(Object o):是否在某日期之前 after(Object o):是否在某日期之后Calendar c = Calendar.getInstance();c.set(2001,0,1);c.add(Calendar.MONT

43、H, 1); 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC compareTo(Calandar a):與另一日歷日期比較: 相等返回0; after a返回1; before a返回-1Calendar a= Calendar.getInstance();a.set(2011, 05,28, 19,50, 2); /參數(shù)為年 月 日 時(shí) 分 秒Calendar c= Calendar.getInstance();c.set(2011, 05,28, 19,50, 3);System.out

44、.println(pareTo(c); /a比c早,返回-1中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.2.3 DateFormat類 使用使用DataFormat的子類的子類SimpleDateFormat可以實(shí)現(xiàn)日期的格式化??梢詫?shí)現(xiàn)日期的格式化。 常用方法:常用方法: 構(gòu)造方法:SimpleDateFormat(String pattern) pattern可以使用元字符來(lái)指定日期的輸出格式 String format(Date d):返回按指定格式處理的日期字符串中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC pattern

45、常用的元字符:常用的元字符: y或yy或yyy:表示用兩位數(shù)字輸出年份 yyyy:表示用4位輸出年份 M或MM:表示用12位數(shù)字輸出月份 d 或dd:表示用12位數(shù)字輸出日 H或HH:表示用12位數(shù)字輸出小時(shí) m或mm:表示用12位數(shù)字輸出分 s或ss:表示用12位數(shù)字輸出秒 E: 表示用字符串輸出星期中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC 注意:注意:1、對(duì)于M,如果超過(guò)兩個(gè)M則用漢字表示月份;對(duì)于E,無(wú)論多少個(gè)E,顯示格式不變;而對(duì)于其他元字符,超過(guò)兩位則補(bǔ)0。例如:SimpleDateFormat dateFormat = new SimpleDate

46、Format(北京時(shí)間:yyyyy年MMMM月ddd日 EEEE);Calendar c = Calendar.getInstance();c.set(2001,8,9);System.out.println(dateFormat.format(c.getTime();運(yùn)行結(jié)果:北京時(shí)間:02001年九月月009日 星期日中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC2、在、在pattern中可以嵌入任意字符串,但是:中可以嵌入任意字符串,但是: 如果嵌入的是ASCII表中的字符,那么必須用單引號(hào)括起;否則,不需要加單引號(hào)。例如:The Time:yyyy年MM月d

47、d日 E北京時(shí)間:yyyy年MM月dd日 E中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.3 Math類 Math類提供了很多類提供了很多靜態(tài)方法靜態(tài)方法用來(lái)進(jìn)行數(shù)學(xué)運(yùn)用來(lái)進(jìn)行數(shù)學(xué)運(yùn)算,如:求平方根、絕對(duì)值、獲取隨機(jī)數(shù)等。算,如:求平方根、絕對(duì)值、獲取隨機(jī)數(shù)等。 位于位于java.lang包中包中 Math類提供了類提供了兩個(gè)靜態(tài)常量?jī)蓚€(gè)靜態(tài)常量: E:2.718281828459045 PI:3.141592653589793中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC 常用方法(靜態(tài)方法)常用方法(靜態(tài)方法) public st

48、atic long abs(double a) :求絕對(duì)值 public static double max(double a,double b) :求最大值 public static double min (double a,double b) :求最小值 public static double random() :產(chǎn)生一個(gè)0到1之間的隨機(jī)數(shù)(不包括0和1)中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC public static double pow(double a,double b) :求a的b次冪 public static double sqrt(double a) :求平方根 public static double log(double a) :求對(duì)數(shù) public static double sin(double a) :求正弦值 public static double asin(double a) :求反正弦值 中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系中國(guó)石油大學(xué)(華東)計(jì)通學(xué)院軟件系UPC5.4 BigInteger類 BigInteger類提供類提供任意任意精度的整數(shù)運(yùn)算。精度的整數(shù)運(yùn)算。 位于位于java.math包中。包中。 構(gòu)造方法:構(gòu)造方法:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論