字符串和日期類_第1頁
字符串和日期類_第2頁
字符串和日期類_第3頁
字符串和日期類_第4頁
字符串和日期類_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Porgramming in Java 2009.9-2010.1 http:/.第第5 5章章 字符串和日期類字符串和日期類緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.內容摘要字符串是在字符串是在JavaJava中最常處理的對象,但也是最常被忽視的對象。中最常處理的對象,但也是最常被忽視的對象。字符串的本質是在字符類型的數組,通常被視為字符串的本質是在字符類型的數組,通常被視為StringString類的類的一個實例,也就是將其視為存在于程序之中的對象。創建符一個實例,也就是將其視為存在于程序之中的對象。創建符合中文格式的日期和數字,是程序員要

2、做的基本任務之一。合中文格式的日期和數字,是程序員要做的基本任務之一。通過使用通過使用DateDate、CalendarCalendar、DateSimpleFormatDateSimpleFormat可以很好完成可以很好完成這項工作。這項工作。在本章中,將會介紹字符串類在本章中,將會介紹字符串類StringString、可改變字符串類、可改變字符串類StringBufferStringBuffer、DateDate類、類、CalendarCalendar類、格式化日期類等。類、格式化日期類等。緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.掌握字符

3、串的創建掌握字符串的創建掌握字符串常用的方法掌握字符串常用的方法熟練掌握字符串比較、檢索、替換和截取等操作熟練掌握字符串比較、檢索、替換和截取等操作掌握掌握StringBufferStringBuffer類的創建和使用類的創建和使用熟練掌握熟練掌握StringTokenizerStringTokenizer掌握常用的日期類掌握常用的日期類DateDate和和CalendarCalendar類類掌握日期和數字的格式掌握日期和數字的格式緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.5.1 字符串String類StringString類是類是java.l

4、angjava.lang包中的一個最終類,主要用來創建一包中的一個最終類,主要用來創建一個字符串對象。個字符串對象。JavaJava中的字符串是使用中的字符串是使用StringString對象表示,也可對象表示,也可以使用直接賦值方式創建,這不同于其他的設計語言,例如在以使用直接賦值方式創建,這不同于其他的設計語言,例如在C C語言中字符串是一個字符數組,可以通過使用數組的方式來使語言中字符串是一個字符數組,可以通過使用數組的方式來使用字符串。用字符串。StringString類包含了許多處理字符串的方法,這些方法類包含了許多處理字符串的方法,這些方法可以直接應用于程序開發中,接下來將詳細介紹

5、字符串對象。可以直接應用于程序開發中,接下來將詳細介紹字符串對象。緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.創建字符串在在JavaJava中,創建字符串對象有兩種方式,一種是以變量形式直中,創建字符串對象有兩種方式,一種是以變量形式直接賦值,同創建其他類型的變量相同。一種是通過接賦值,同創建其他類型的變量相同。一種是通過StringString創創建,即以創建對象的方式創建。不管使用任何一種方式,字建,即以創建對象的方式創建。不管使用任何一種方式,字符串對象一旦被賦值,其值在某種意義上是不可變的,即它符串對象一旦被賦值,其值在某種意義上是不可變

6、的,即它們的值在創建之后不能通過字符串方法進行更改,但可以使們的值在創建之后不能通過字符串方法進行更改,但可以使用其他變量重新賦值進行更改。字符串常量是使用雙引號引用其他變量重新賦值進行更改。字符串常量是使用雙引號引起的內容,例如起的內容,例如“student”student”等。等。聲明字符串變量和聲明基本數據類型變量(聲明對象)一樣,聲明字符串變量和聲明基本數據類型變量(聲明對象)一樣,語法如下所示:語法如下所示: String varialeName; String varialeName;緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.創建字

7、符串StringString類除了上面創建字符串的方式外,還可以使用其他的常用類除了上面創建字符串的方式外,還可以使用其他的常用構造方法,如下所示:構造方法,如下所示:public String(char value)public String(char value)方法方法public String(char value,int offset,int count)public String(char value,int offset,int count)方法方法public String(byte value)public String(byte value)方法方法緒緒 論論Porgram

8、ming in Java 2010.2-2010.7 http:/.字符串常用方法介紹無論在任何語言中,字符串都是程序要操作的主要對象,基無論在任何語言中,字符串都是程序要操作的主要對象,基本上可以作為程序數據的代碼。在本上可以作為程序數據的代碼。在JavaJava中,中,StringString類提供了大類提供了大量的方法,可以實現字符串多種操作,如比較、檢索和替換等。量的方法,可以實現字符串多種操作,如比較、檢索和替換等。常用方法根據其作用可以分為:字符串比較、字符串檢索、常用方法根據其作用可以分為:字符串比較、字符串檢索、字符串替換、字符串截取和類型轉換等五類。字符串替換、字符串截取和類

9、型轉換等五類。緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.字符串比較對文本進行操作時,字符串比較是使用較頻繁的一組操作。對文本進行操作時,字符串比較是使用較頻繁的一組操作。字符串對象調用字符串對象調用StringString類中的類中的equalsequals方法,比較當前字符串對象方法,比較當前字符串對象的實體是否與參數指定的字符串的實體相同。的實體是否與參數指定的字符串的實體相同。字符串對象調用字符串對象調用StringString類中的類中的equalslgnoreCaseequalslgnoreCase方法,比較當前方法,比較當前字符串對

10、象與參數指定的字符串是否相同,比較時忽略大小寫。字符串對象與參數指定的字符串是否相同,比較時忽略大小寫。字符串對象調用字符串對象調用StringString類中的類中的startsWithstartsWith方法和方法和endsWithendsWith方法判方法判斷字符串的前綴和后綴是否是指定內容。斷字符串的前綴和后綴是否是指定內容。字符串對象使用字符串對象使用StringString類中的類中的compareTocompareTo方法,按字典順序和參數方法,按字典順序和參數字符串比較大小。字符串比較大小。字符串對象可以使用字符串對象可以使用StringString類的類的compareToI

11、gnoreCasecompareToIgnoreCase方法進行忽方法進行忽略大小寫比較大小。該方法的使用和略大小寫比較大小。該方法的使用和compareTocompareTo方法相同。方法相同。例如:例如:TestString.java TestString.java 和和 Compare.javaCompare.java緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.字符串檢索StringString類中一組類中一組indexOfindexOf方法,用來檢索由參數指定的字符方法,用來檢索由參數指定的字符或字符串在字符串中的索引。或字符串在字符串中

12、的索引。字符串檢索操作是處理字符串很常用的功能,因此須要牢字符串檢索操作是處理字符串很常用的功能,因此須要牢固掌握。固掌握。例如:例如:IndexExample.javaIndexExample.java緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.字符串其他操作除了上面介紹的兩個重要應用之外,字符串還可以完成其他除了上面介紹的兩個重要應用之外,字符串還可以完成其他操作,如字符串替換、截取和轉換。操作,如字符串替換、截取和轉換。 字符串替換字符串替換 String String類中的一組類中的一組replacereplace方法返回一個新的字符串,

13、它是方法返回一個新的字符串,它是通過用新的字符串(或字符),替換此字符串中出現的所有指定通過用新的字符串(或字符),替換此字符串中出現的所有指定子字符串(或字符)而得到的。子字符串(或字符)而得到的。 字符串截取字符串截取 字符串對象調用字符串對象調用StringString類的類的substringsubstring方法可以對字符串進方法可以對字符串進行取子字符串的操作:行取子字符串的操作:String substring(int beginIndex)String substring(int beginIndex)方法方法把指定索引后面的子字符串作為返回值返回;把指定索引后面的子字符串作為

14、返回值返回;String String substring(int beginIndex, int endIndex)substring(int beginIndex, int endIndex)方法把指定的起始方法把指定的起始索引值與結束索引值之間的子字符串作為返回值返回。索引值與結束索引值之間的子字符串作為返回值返回。緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.字符串其他操作 類型轉換類型轉換 String String類中的一組類中的一組valueOfvalueOf方法返回一個字符串對象,該字符方法返回一個字符串對象,該字符串是參數的字符串

15、表示形式。串是參數的字符串表示形式。例如:例如:CheckEmail.javaCheckEmail.java緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.5.2 可改變字符串類通過通過StringString類創建的字符串,無論完成任何操作,都會形成一類創建的字符串,無論完成任何操作,都會形成一個字符串副本用來完成操作。對于字符串的任何操作,如替個字符串副本用來完成操作。對于字符串的任何操作,如替換,其結果只會影響字符串副本,而對于字符串的存儲值不換,其結果只會影響字符串副本,而對于字符串的存儲值不會有任何影響。如果要改變字符串存儲的值,可以使用會

16、有任何影響。如果要改變字符串存儲的值,可以使用StringBufferStringBuffer類。類。StringBufferStringBuffer類允許用戶創建可以以各種方式修改的字符串對類允許用戶創建可以以各種方式修改的字符串對象,它與描述字符串常量的象,它與描述字符串常量的StringString類不同。當用戶使用類不同。當用戶使用StringBufferStringBuffer類的字符串時,用戶并沒有創建一個新的類的字符串時,用戶并沒有創建一個新的StringString對象,而是直接操作源字符串本身。為此,對象,而是直接操作源字符串本身。為此,StringBufferStringB

17、uffer類提供了與類提供了與StringString類不同的方法集,所有的操類不同的方法集,所有的操作都直接發生在包含該字符串的緩沖區上。作都直接發生在包含該字符串的緩沖區上。 緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.創建StringBuffer類一般來說,無論字符串是否被使用,字符串緩沖區都可以使用。一般來說,無論字符串是否被使用,字符串緩沖區都可以使用。StringBufferStringBuffer比比StringString的使用更靈活。盡管字符串一旦創建的使用更靈活。盡管字符串一旦創建后字符串被固定,但是仍可以增加、插入或者在字符

18、串緩沖后字符串被固定,但是仍可以增加、插入或者在字符串緩沖區添加新的內容。區添加新的內容。創建創建StringBufferStringBuffer對象必須使用構造方法來創建。對象必須使用構造方法來創建。StringBufferStringBuffer類提供了幾個構造方法允許用戶以各種方式構類提供了幾個構造方法允許用戶以各種方式構造造StringBufferStringBuffer對象。這些構造方法如表對象。這些構造方法如表5-25-2所示:所示:緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.創建StringBuffer類構造方法構造方法概述概述St

19、ringBuffer()構造一個其中不帶字符的字符串緩沖區,構造一個其中不帶字符的字符串緩沖區,初始容量初始容量 為為16個字符。個字符。StringBuffer(int capacity)構造方法構造一個不帶字符,但具有指定構造方法構造一個不帶字符,但具有指定初始容量的字符串緩沖區。初始容量的字符串緩沖區。StringBuffer(String str)構造一個字符串緩沖區,并將其內容初始構造一個字符串緩沖區,并將其內容初始化為指定的字符串內容。化為指定的字符串內容。表表5-2 StringBuffer5-2 StringBuffer構造方法概述構造方法概述例如:例如:StringBuffe

20、rTest.javaStringBufferTest.java緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.應用作為一個值可以改變的作為一個值可以改變的StringBufferStringBuffer類,可以完成替換、追加類,可以完成替換、追加和刪除等操作。在本節將介紹和刪除等操作。在本節將介紹StringBufferStringBuffer對象常用方法,對象常用方法, 字符串追加字符串追加 StringBuffer StringBuffer類中一組類中一組append()append()方法用來給方法用來給StringBufferStringBu

21、ffer對對象追加數據。象追加數據。例如:例如:StringBufferAppend.java.java 字符串刪除字符串刪除 StringBuffer StringBuffer類中的一組類中的一組delete()delete()方法用來刪除方法用來刪除StringBufferStringBuffer對象中的字符或字符串:對象中的字符或字符串:deleteCharAt(int index)deleteCharAt(int index)方法用來刪除指定索引的字符,方法用來刪除指定索引的字符,delete(int start,int end)delete(int start,int end)方法方

22、法用來刪除指定字符串。用來刪除指定字符串。StringBufferStringBuffer類中的一組類中的一組insert()insert()方法用方法用來向來向StringBufferStringBuffer對象中插入字符或字符串。對象中插入字符或字符串。StringBufferStringBuffer類中類中的的reverse()reverse()方法對方法對StringBufferStringBuffer對象中的字符串進行反序排列。對象中的字符串進行反序排列。例如:例如:StringBufferDemo.java.java緒緒 論論Porgramming in Java 2010.2-2

23、010.7 http:/.5.3 字符串拆分類StringTokenizer在在JavaJava程序字符串操作時,有時需要分析字符串并將字符程序字符串操作時,有時需要分析字符串并將字符串分解成可被獨立使用的單詞(字符串),這些單詞叫做語言串分解成可被獨立使用的單詞(字符串),這些單詞叫做語言符號。符號。StringTokenizerStringTokenizer類有兩個常用的構造方法:類有兩個常用的構造方法:StringTokenizer(String str)StringTokenizer(String str)為指定字符串為指定字符串strstr構造一個構造一個分析器。使用默認的分隔符集合

24、。即空格符(若干個空格被看分析器。使用默認的分隔符集合。即空格符(若干個空格被看作一個空格)、換行符、回車符、作一個空格)、換行符、回車符、TabTab符和換頁符。符和換頁符。StringTokenizer(String str, String delim)StringTokenizer(String str, String delim)為指定字符為指定字符串串strstr構造一個分析器。參數構造一個分析器。參數delimdelim中的字符被作為分隔符。中的字符被作為分隔符。例如:例如:StringTokenizerDemo.java緒緒 論論Porgramming in Java 2010.

25、2-2010.7 http:/.5.4 常用日期類在在JavaJava中獲取當前時間,可以通過多個類來完成,如使用、中獲取當前時間,可以通過多個類來完成,如使用、和類。類來對日期和時間的系統信息進行封裝,是和類。類來對日期和時間的系統信息進行封裝,是sqlsql包對時間包對時間的封裝,類將根據默認的日歷系統來解釋的封裝,類將根據默認的日歷系統來解釋DateDate對象。本節將主對象。本節將主要介紹和類。要介紹和類。緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.類DateDate類有兩個不過時的構造函數,如下所示:類有兩個不過時的構造函數,如下所示:

26、 Date() Date() Date(long date) Date(long date)第二個構造方法中的參數表示自從標準基準時間(稱第二個構造方法中的參數表示自從標準基準時間(稱為為“歷元(歷元(epochepoch)”,即,即19701970年年1 1月月1 1日日00:00:00 GMT00:00:00 GMT)以來的指定毫秒數。使用以來的指定毫秒數。使用DateDate類的無參數構造方法創建的類的無參數構造方法創建的對象可以獲取本地當前時間。對象可以獲取本地當前時間。DateDate對象表示時間的默認順對象表示時間的默認順序是星期、月、日、小時、分、秒、年。序是星期、月、日、小時、

27、分、秒、年。例如:例如:DateDemo.javaDateDemo.java緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.類CalendarCalendar類是一個抽象類,它為特定瞬間與一組諸如類是一個抽象類,它為特定瞬間與一組諸如YEARYEAR、MONTHMONTH、DAY_OF_MONTHDAY_OF_MONTH、HOURHOUR等日歷字段之間的轉換提供了一些方等日歷字段之間的轉換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距歷元(即

28、格林威治標準時間法。瞬間可用毫秒值來表示,它是距歷元(即格林威治標準時間19701970年年1 1月月1 1日的日的00:00:00.00000:00:00.000,格里高利歷)的偏移量。,格里高利歷)的偏移量。CalendarCalendar類還為實現包范圍外的具體日歷系統提供了其他字段類還為實現包范圍外的具體日歷系統提供了其他字段和方法。這些字段和方法被定義為和方法。這些字段和方法被定義為protectedprotected。與其他語言環境敏。與其他語言環境敏感類一樣,感類一樣,Calendar Calendar 提供了一個類方法提供了一個類方法getInstancegetInstance

29、,以獲得此,以獲得此類型的一個通用的對象。類型的一個通用的對象。CalendarCalendar的的getInstancegetInstance方法返回一個方法返回一個CalendarCalendar對象,其日歷字段已由當前日期和時間初始化:對象,其日歷字段已由當前日期和時間初始化: Calendar rightNow = Calendar.getInstance(); Calendar rightNow = Calendar.getInstance();緒緒 論論Porgramming in Java 2010.2-2010.7 http:/. 類CalendarCalendar對象可以調用

30、對象可以調用set()set()方法將日歷翻到任何一個時間,當方法將日歷翻到任何一個時間,當參數參數yearyear取負數時表示公元前。取負數時表示公元前。CalendarCalendar對象調用對象調用get()get()方法方法可以獲取有關年、月、日等時間信息,參數可以獲取有關年、月、日等時間信息,參數fieldfield的有效值由的有效值由CalendarCalendar靜態常量指定。靜態常量指定。緒緒 論論Porgramming in Java 2010.2-2010.7 http:/. 5.5 格式化在編程過程中,程序員往往會遇到顯示貨幣、日期等數據的在編程過程中,程序員往往會遇到顯

31、示貨幣、日期等數據的特殊需求,如顯示時間的中文格式、顯示雙精度數字的整數形特殊需求,如顯示時間的中文格式、顯示雙精度數字的整數形式,而通過在現實中加入分隔符十分麻煩。為此,式,而通過在現實中加入分隔符十分麻煩。為此,JavaJava語言提語言提供了專門的類,用來格式化輸出特殊的數據,比如日期、數字、供了專門的類,用來格式化輸出特殊的數據,比如日期、數字、貨幣和百分數。貨幣和百分數。緒緒 論論Porgramming in Java 2010.2-2010.7 http:/. 格式化日期SimpleDateFormatSimpleDateFormat使得可以選擇任何用戶定義的日期使得可以選擇任何用

32、戶定義的日期- -時間格式時間格式的模式。但是,仍然建議通過的模式。但是,仍然建議通過DateFormatDateFormat中的中的getTimeInstancegetTimeInstance、getDateInstance getDateInstance 或或 getDateTimeInstance getDateTimeInstance 來創建日期來創建日期- -時間格式器。每一個這樣時間格式器。每一個這樣的類方法都能夠返回一個以默認格式模式初始化的日期的類方法都能夠返回一個以默認格式模式初始化的日期/ /時間時間格式器。可以根據需要使用格式器。可以根據需要使用applyPatternapplyPattern方法來修改格式模方法來修改格式模式。式。 緒緒 論論Porgramming in Java 2010.2-2010.7 http:/.格式化數字對數字、貨幣的格式化,對數字、

溫馨提示

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

評論

0/150

提交評論