版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 數(shù)字、字符和字符串處理,在程序中,最經(jīng)常處理的數(shù)據(jù)就是數(shù)字、字符和字符串,因此,在各種程序設(shè)計(jì)語言中,都提供有專門用來處理數(shù)字、字符和字符串的功能。Java語言也不例外,它提供有專門用來處理數(shù)字的Number及其子類;專門用來處理數(shù)學(xué)運(yùn)算的Math類;專門用來處理字符的Character類以及專門用來創(chuàng)建和操作字符串的類 String。這些類都位于java.lang包中。本章主要講解這些類的用法。,5.1 數(shù)字,本節(jié)介紹java.lang包中的Number類及其子類,以及在什么條件下使用這些類的實(shí)例而不是使用原始數(shù)據(jù)類型。本節(jié)還會(huì)介紹PrintStream和DecimalFormat類
2、,這兩個(gè)類提供了輸出格式化數(shù)字的方法。在本節(jié)的最后將介紹java.lang包中的Math類。Math類包含有Java語言的數(shù)學(xué)運(yùn)算函數(shù),包括三角函數(shù)和指數(shù)函數(shù)等。,5.1.1 Numbers數(shù)字包裝器類,一般在寫程序時(shí),當(dāng)使用到數(shù)字時(shí),多數(shù)都是在代碼中使用原始數(shù)據(jù)類型,如int類型、float類型、byte類型等。這樣書寫代碼比較簡(jiǎn)單易懂。例如在下面的代碼中,有三個(gè)不同的數(shù)據(jù)類型,分別表示三個(gè)數(shù)字。,5.1.2 數(shù)字的格式化輸出,在此之前,讀者可能已經(jīng)注意到使用print()和println()方法用于打印字符串到標(biāo)準(zhǔn)輸出(System.out)。因?yàn)樗械臄?shù)字都能被轉(zhuǎn)換到字符串,所以程序員可
3、以使用這些方法來打印出任意一個(gè)字符串和數(shù)字的混合。不過,Java程序設(shè)計(jì)語言提供有另外一些方法,當(dāng)輸出內(nèi)容包含有數(shù)字時(shí),程序員可以使用這些方法對(duì)打印輸出進(jìn)行更多的控制。 1printf ()和format()方法 2格式化數(shù)字輸出應(yīng)用示例 3DecimalFormat類,5.1.3 Math數(shù)學(xué)運(yùn)算處理類,Java程序設(shè)計(jì)語言使用其算術(shù)運(yùn)算符“+”、“-”、“*”、“/”和“%”支持基本的算術(shù)運(yùn)算。在java.lang包中的Math類提供有常量,并包含有用于執(zhí)行基本數(shù)學(xué)運(yùn)算的方法,如初等指數(shù)、對(duì)數(shù)、平方根和三角函數(shù)等,用于進(jìn)行更高級(jí)的數(shù)學(xué)計(jì)算。 1常量和基本方法 2指數(shù)和對(duì)數(shù)方法 3三角方法
4、4隨機(jī)數(shù),5.2 字符,字符指的是用單引號(hào)括起來的單個(gè)字母。在Java中,表示字符的數(shù)據(jù)類型為char。一個(gè)字符在內(nèi)存中占16位大小的空間(2個(gè)字節(jié))。在編寫程序的多數(shù)時(shí)候,如果想使用一個(gè)單獨(dú)的字符值,通常會(huì)使用原始的char類型。,5.2.1 Character字符包裝器類,有時(shí)候可能需要使用一個(gè)字符作為一個(gè)對(duì)象,例如,將一個(gè)字符作為一個(gè)方法的參數(shù),而該參數(shù)應(yīng)該為對(duì)象類型。同樣地,Java語言也提供了一個(gè)“包裝(wrapper)器”類,用來將char類型的字符“包裝”為一個(gè)Character對(duì)象。一個(gè)類型為Character的對(duì)象包含一個(gè)單獨(dú)的字段,其類型為char。Character類還提
5、供有一系列的類方法(靜態(tài)方法)用于操縱字符??梢允褂肅haracter構(gòu)造器創(chuàng)建一個(gè)Character對(duì)象,如下所示。 Character ch_sex = new Character(男);,5.2.2 轉(zhuǎn)義字符序列,在一個(gè)字符前帶一個(gè)反斜線符號(hào)“”,是一個(gè)“轉(zhuǎn)義字符序列”,并且對(duì)于編譯器來說,每一個(gè)轉(zhuǎn)義字符序列都有一個(gè)特定的含義。在本書中的System.out.println()語句中,已經(jīng)頻繁地使用到換行符“n”這個(gè)轉(zhuǎn)義字符,它的含義是在輸出一個(gè)字符串后轉(zhuǎn)到下一行。,5.3 使用String類,在Java語言中,把用雙引號(hào)括起來零個(gè)或多個(gè)字符序列,稱為字符串,如“早上好!”、“Hello
6、 World!”等。注意字符串和字符的區(qū)別,字符是用單引號(hào)括起來的一個(gè)字符,而字符串一定是用雙引號(hào)括起來的零個(gè)或多個(gè)字符序列。,5.3.1 創(chuàng)建字符串對(duì)象,在Java中,把字符串作為對(duì)象來看待,不過對(duì)于初學(xué)者來說,可以把字符串看成是一種數(shù)據(jù)類型,就象其他數(shù)據(jù)類型一樣,如int代表整數(shù),float代表小數(shù),Java用關(guān)鍵字String來代表字符串的類型。事實(shí)上,由于對(duì)于字符串的處理是如此頻繁和重要,雖然在Java中字符串實(shí)際上是作為對(duì)象來存儲(chǔ)的,但從使用形式上,它與一般的原始數(shù)據(jù)類型一樣簡(jiǎn)單。 1使用new運(yùn)算符 2直接賦初值 3初始化為null值,5.3.2 獲取字符串的長(zhǎng)度,字符串對(duì)象有一個(gè)
7、訪問方法length(),用來獲取字符串的長(zhǎng)度。調(diào)用字符串對(duì)象的length()方法,它會(huì)返回字符串對(duì)象中所包含的字符的個(gè)數(shù)。,5.3.3 連接字符串,最經(jīng)常對(duì)字符串進(jìn)行的操作之一是將兩個(gè)字符串連接起來,合并為一個(gè)長(zhǎng)的字符串。String類提供了一個(gè)用來連接兩個(gè)字符串的方法concat( ),其使用形式如下所示。 string1.concat(string2);,5.3.4 字符串與字符數(shù)組,可以方便地將字符數(shù)組轉(zhuǎn)換為字符串,然后利用字符串對(duì)象的屬性和方法,對(duì)其進(jìn)行進(jìn)一步地處理。將字符數(shù)組轉(zhuǎn)換為字符串的代碼形式如下。 char helloArray = h,e,l,l,o,.; String
8、helloString = new String(helloArray);/將字符數(shù)組作為構(gòu)造函數(shù)的參數(shù) System.out.println(helloString);,5.3.5 在一個(gè)字符串中操縱字符,String類提供有大量的方法來檢查字符串的內(nèi)容,例如,在一個(gè)字符串中查找特定的字符或子字符串,以及改變字符串中的內(nèi)容等。下面就介紹這些在字符串中操縱字符的方法。 1通過索引獲得字符和子字符串 2操縱字符串的方法 3在一個(gè)字符串中查找特定字符或子字符串 4替換一個(gè)字符串中的字符和子字符串,5.3.6 字符串比較和字符串部分內(nèi)容比較,String類還提供了一系列的方法,用來對(duì)字符串進(jìn)行比較或
9、對(duì)字符串的部分內(nèi)容進(jìn)行比較,例如比較兩個(gè)字符串是否相等、字符串是否以指定的前綴開始或以指定的后綴結(jié)尾等。,5.4 使用StringBuilder類,一個(gè)String對(duì)象的長(zhǎng)度是固定的,不能改變它的內(nèi)容,也不能附加新的字符至String對(duì)象中。可以使用加號(hào)“+”運(yùn)算符來連接字符串以達(dá)到附加新字符或字符串的目的,但使用加號(hào)“+”運(yùn)算符會(huì)產(chǎn)生一個(gè)新的String實(shí)例,即需要另外分配空間。如果既想節(jié)省開銷,又能改變字符串的內(nèi)容,則可以使用StringBuilder類。,5.4.1 認(rèn)識(shí)StringBuilder類,J2SE 5.0提供java.lang.StringBuilder類,使用這個(gè)類所產(chǎn)生的
10、對(duì)象默認(rèn)會(huì)有16個(gè)字符的長(zhǎng)度,程序員也可以自行指定初始長(zhǎng)度。StringBuilder類就象一個(gè)可變長(zhǎng)度的字符數(shù)組一樣,內(nèi)容和長(zhǎng)度都可以被改變。如果附加的字符超出可容納的長(zhǎng)度,則StringBuilder對(duì)象會(huì)自動(dòng)增加長(zhǎng)度以容納被附加的字符。,5.4.2 StringBuilder對(duì)象的長(zhǎng)度和容量,StringBuilder類有一個(gè)length()方法,調(diào)用它會(huì)返回在StringBuilder字符串對(duì)象中的字符序列的長(zhǎng)度,就象String類一樣。但是StringBuilder類還有一個(gè)String類所沒有的方法capacity()。capacity()方法可返回該對(duì)象目前已經(jīng)被分配的、可容納的
11、字符容量,它總是大于或等于字符串對(duì)象的長(zhǎng)度,并且根據(jù)情況可自行進(jìn)行擴(kuò)展。請(qǐng)看下面的代碼片段: StringBuilder sb = new StringBuilder();/創(chuàng)建一個(gè)空的StringBuilder對(duì)象,初始容量為16 sb.append(“Greetings”);/在內(nèi)存空間的開始添加9個(gè)字符,5.4.3 StringBuilder類提供的操作方法,在StringBuilder對(duì)象上所具有而在String對(duì)象上所沒有的主要操作,是append()和insert()方法,它們有多種重載的形式,可以把不同類型的數(shù)據(jù)轉(zhuǎn)化為字符序列,然后添加或插入到StringBuilder對(duì)象中。a
12、ppend()方法總是添加這些字符串到已經(jīng)存在的字符序列的最后,而insert()方法則將字符或字符串添加到指定的位置。,5.5 實(shí)例,關(guān)于字符串的處理,在實(shí)際開發(fā)應(yīng)用程序時(shí)會(huì)經(jīng)常用到。本節(jié)就通過兩個(gè)應(yīng)用實(shí)例“用戶登錄驗(yàn)證程序”和“敏感詞過濾程序”,幫助讀者了解和掌握字符串處理在實(shí)際應(yīng)用程序開發(fā)中的應(yīng)用。這兩個(gè)實(shí)例都用到了本節(jié)所講述的字符串處理方法。,5.5.1 實(shí)例1:用戶登錄驗(yàn)證程序,在很多程序中,為了保護(hù)數(shù)據(jù)信息的安全,需要對(duì)登錄應(yīng)用程序的用戶進(jìn)行驗(yàn)證,只有通過驗(yàn)證的用戶,如已經(jīng)注冊(cè)的用戶或指定權(quán)限的用戶,才能進(jìn)入系統(tǒng)并擁有相應(yīng)的操作權(quán)限。,5.5.2 實(shí)例2:敏感詞過濾程序,在網(wǎng)絡(luò)程序中,如聊天室、聊天軟件等,經(jīng)常需要對(duì)一些用戶所提交的聊天內(nèi)容中的敏感性詞語進(jìn)行過濾。如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 7711-1:2021/Amd 1:2025 EN Dentistry - Diamond rotary instruments - Part 1: General requirements - Amendment 1
- 2025-2030年中國(guó)金融押運(yùn)行業(yè)開拓第二增長(zhǎng)曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)人才尋獵(獵頭)行業(yè)開拓第二增長(zhǎng)曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)旅行社行業(yè)營(yíng)銷創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)電子熱管理產(chǎn)品行業(yè)全國(guó)市場(chǎng)開拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 新形勢(shì)下知識(shí)產(chǎn)權(quán)保護(hù)行業(yè)快速做大市場(chǎng)規(guī)模戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)在線招聘行業(yè)開拓第二增長(zhǎng)曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 自動(dòng)扶梯運(yùn)行管理制度
- 織金縣教育局2013年學(xué)前教育宣傳月活動(dòng)方案
- 建設(shè)局年度工作計(jì)劃
- 大學(xué)宣傳部工作總結(jié)學(xué)生會(huì)
- 2024年永州職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫(kù)含答案解析
- 藥物分離與純化技術(shù)
- 餐廳各類食材原材料供貨驗(yàn)收標(biāo)準(zhǔn)
- 物理實(shí)驗(yàn):測(cè)量電容器的電容和電荷量
- 免疫相關(guān)不良反應(yīng)的預(yù)防和處理
- 【區(qū)域開發(fā)戰(zhàn)略中環(huán)境保護(hù)政策的現(xiàn)存問題及優(yōu)化建議分析6800字(論文)】
- 2020年高級(jí)統(tǒng)計(jì)實(shí)務(wù)與案例分析真題及答案
- 新型農(nóng)村集體經(jīng)濟(jì)研究綜述
- 人教版數(shù)學(xué)八年級(jí)上冊(cè)第十一章 三角形 作業(yè)設(shè)計(jì) 教案(含答案)
- 管理人履職工作報(bào)告
評(píng)論
0/150
提交評(píng)論