JAVA編程高級(jí)-08工具類_第1頁
JAVA編程高級(jí)-08工具類_第2頁
JAVA編程高級(jí)-08工具類_第3頁
JAVA編程高級(jí)-08工具類_第4頁
JAVA編程高級(jí)-08工具類_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)科學(xué)與技術(shù)系顏德彪Java程序設(shè)計(jì)目標(biāo):Object類及相關(guān)工具類的介紹。通過本課的學(xué)習(xí),學(xué)員應(yīng)該掌握如下知識(shí):1)理解包裝類的功用。2)掌握String類中的常用方法。3)理解StringBuffer和StringBuilder類中的常用方法;理解String、StringBuffer、StringBuilder類的區(qū)別。4)了解Math類的使用5)了解日期類的使用工具類時(shí)間:2學(xué)時(shí)教學(xué)方法:PPT講解

示例練習(xí)本章要點(diǎn)JavaAPI理解API的概念Object類包裝類String類與StringBuffer類String類的常用方法StringBuffer類的常用方法StringBuilder類的常用方法String與StringBuffer的區(qū)別StringBuffer與StringBuilder的區(qū)別Math類日期類型JavaAPI1Object類2包裝類3字符串類4Math類5日期類型6ContentsJAVAAPI簡(jiǎn)介API的概念A(yù)PI(ApplicationProgrammingInterface)應(yīng)用程序接口Java中的API,就是JDK提供的各種功能的Java類JDK幫助文檔JAVA_API_CN.chmJAVAAPI簡(jiǎn)介JDK中常用的包java.langJava語言包(包含String、Math、System等類),任何類中,該包中的類都會(huì)被自動(dòng)導(dǎo)入。java.util包含一些實(shí)用的工具類(包含list,calendar,date等類)java.awt圖形用戶界面包。java.io提供多種輸入/輸出功能的類。JavaAPI1Object類2包裝類3字符串類4Math類5日期類型6ContentsObject介紹及方法Object類Object類是所有類的超類,Object是Java語言中唯一一個(gè)沒有父類的類。一個(gè)類可以不是Object類的直接子類,但一定是Object類的子類,Java中的每一個(gè)類都是從Object擴(kuò)展來的。在Object類中定義的方法,在所有類中都可以使用。Object類常用方法

示例:ObjectSample.javapublicbooleanequals(Object

obj)比較兩個(gè)對(duì)象引用的值是否相等(比較哈希地址)publicinthashCode()返回十進(jìn)制整數(shù),唯一標(biāo)識(shí)一個(gè)對(duì)象publicStringtoString()返回類名@hashcodeJavaAPI1Object類2包裝類3字符串類4Math類5日期類型6Contents包裝類簡(jiǎn)介包裝類基本數(shù)據(jù)類型不是對(duì)象層次結(jié)構(gòu)的組成部分。有時(shí)需要像處理對(duì)象一樣處理這些基本數(shù)據(jù)類型,可通過相應(yīng)的“包裝類”來將其“包裝”。數(shù)據(jù)類型封裝類booleanBooleanbyteBytecharCharacterdoubleDoublefloatFloatintIntegerlongLongshortShort基本數(shù)據(jù)類型轉(zhuǎn)換為包裝類基本數(shù)據(jù)類型通過構(gòu)造器轉(zhuǎn)換為包裝類intpInt=500;IntegerwInt=newInteger(pInt);示例:TestWrapper.java字符串轉(zhuǎn)換為包裝類字符串通過構(gòu)造方法轉(zhuǎn)換為包裝類字符串通過包裝類的valueOf(Strings)轉(zhuǎn)換為包裝類StringsInt=“500”;IntegerwInt=newInteger(sInt);StringsInt=“500”;IntegerwInt=Integer.valueOf(sInt);

注意:字符串不能通過以上兩種方式轉(zhuǎn)換為Character示例:TestWrapper.java包裝類轉(zhuǎn)換為基本數(shù)據(jù)類型包裝類通過xxxValue()方法轉(zhuǎn)換為基本數(shù)據(jù)類型

IntegerwInt=newInteger(500);intpInt=wIValue();示例:TestWrapper.java包裝類轉(zhuǎn)換為字符串包裝類通過toString()方法轉(zhuǎn)換為字符串IntegerwInt=newInteger(500);StringsInt=wInt.toString();示例:TestWrapper.java字符串轉(zhuǎn)換為基本數(shù)據(jù)類型字符串通過parseXXX(Strings)方法轉(zhuǎn)換為基本數(shù)據(jù)類型StringsInt=“500”;intpInt=Integer.parsetIInt(sInt);示例:TestWrapper.java自動(dòng)裝箱和自動(dòng)拆箱自動(dòng)的裝箱和自動(dòng)拆箱示例:TestWrapper.java

在進(jìn)行基本數(shù)據(jù)類型和對(duì)應(yīng)的包裝類轉(zhuǎn)換時(shí),系統(tǒng)將自動(dòng)進(jìn)行JDK自從5.0版本后引入方便程序的編寫intpInt=500;IntegerwInt=pInt;intn=wInt;JavaAPI1Object類2包裝類3字符串類4Math類5日期類型6ContentsString類String類代表一組不可改變的unicode字符序列。String類用于比較兩字符串、查找和抽取串中的字符或子串、字符串與其他類型之間的轉(zhuǎn)換等。String類對(duì)象的內(nèi)容一旦被初始化就不能再改變。String類String對(duì)象的創(chuàng)建String類的構(gòu)造方法初始化一個(gè)新創(chuàng)建的String對(duì)象,它表示一個(gè)空字符序列。

初始化一個(gè)新創(chuàng)建的String對(duì)象,表示一個(gè)與該參數(shù)相同的字符序列分配一個(gè)新的字符串,它包含當(dāng)前包含在字符串緩沖區(qū)參數(shù)中的字符序列。字符串文字常量本身是一個(gè)String對(duì)象String

變量名=newString();

String

變量名=newString(String

value);

String

變量名=newString(StringBufferbuf);

String

變量名=“hello”;String類“+”字符串連接運(yùn)算符連接操作符“+”,可以將其它各種類型的數(shù)據(jù)轉(zhuǎn)換成字符串,并前后連接成新的字符串?練習(xí)Stringstr1=“hello”;Stringstr2=“world”;Stringstr=str1+str2;//str為“helloworld”System.out.println(5+6+’A’);System.out.println(5+6+”A”);System.out.println(5+”A”+6);7611A5A6String類String類的性質(zhì)示例

StringDemo.java任何一個(gè)String對(duì)象在創(chuàng)建之后都不能對(duì)它的內(nèi)容作出任何改變(immutable)連接、獲得子串和改變大小寫等操作,如果返回值同原字符串不同,實(shí)際上是產(chǎn)生了一個(gè)新的String對(duì)象在程序的任何地方,相同的字符串字面常量都是同一個(gè)對(duì)象String類重置了equals方法,用于比較兩個(gè)字符串的內(nèi)容Stringstr1=“hello”;Stringstr2=newString(“hello”);System.out.println(str1==str2);System.out.println(str1.equals(str2));String類String類的常用方法方法含義booleanequals(String)判斷兩個(gè)字符串對(duì)象的內(nèi)容是否相等booleanequalsIgnoreCase(String)比較兩個(gè)字符串的內(nèi)容是否相等,忽略大小寫StringtoUpperCase()將String對(duì)象中的所有字符都轉(zhuǎn)換為大寫StringtoLowerCase()將String對(duì)象中的所有字符都轉(zhuǎn)換為小寫charcharAt(int)返回指定索引處的char值StringsubString(intbegin)返回一個(gè)新字符串,該字符串是從begin開始的字符串的內(nèi)容StringsubString(intbegin,intend)返回一個(gè)新字符串,該字符串是從begin開始到end結(jié)束的字符串的內(nèi)容String類String類的常用方法方法含義intindexOf/lastIndexOf(char)返回指定字符在此字符串中第一次/最后一次出現(xiàn)處的索引。intindexOf/lastIndexOf(char,int)從指定的索引開始搜索,返回在此字符串中第一次/最后一次出現(xiàn)指定字符處的索引intindexOf/lastIndexOf(String)返回第一次出現(xiàn)的指定子字符串在此字符串中的索引intindexOf/lastIndexOf(String,int)從指定的索引開始搜索,返回在此字符串中第一次/最后一次出現(xiàn)指定字符串處的索引Stringtrim()返回新的字符串,忽略前導(dǎo)空白和尾部空白intlength()返回此字符串的長(zhǎng)度String類Stringstr=xxx;if(str!=null&&str.length()!=0){}

?

練習(xí)我們通過用戶名和密碼來登陸系統(tǒng)的時(shí)候,需要對(duì)用戶身份的合法性做判斷。在判斷之前,我們需要先驗(yàn)證用戶輸入的信息是否為空,如何驗(yàn)證呢?反過來可以嗎?在判斷字符串為空的時(shí)候,我們要先判斷是不是對(duì)象,再判斷是不是空字符串?。tring方法練習(xí)String字符串格式化String.format()第一參數(shù)叫格式表達(dá)式,在格式化表達(dá)式中可以使用多個(gè)”%”,如:Strings=String.format(“Youpayme%,.2f,andIshouldpayyou%,d”,1236.234,5000);其中“%”表示要格式化的數(shù)字

,d:以十進(jìn)制整數(shù)帶逗號(hào)的方式來表示;

.2f:以小數(shù)點(diǎn)后兩位的方式來格式化此浮點(diǎn)數(shù);

,.2f:代表整數(shù)部分以逗號(hào)的形式表示,小數(shù)部分以兩位來格式化;

Strings=String.format(“%,d”,1000000);System.out.println(s);//1,000,000String方法練習(xí)String字符串格式化String.format()System.out.print()一般標(biāo)準(zhǔn)輸出,不換行System.out.println()一般標(biāo)準(zhǔn)輸出,最后會(huì)換行System.out.printf()格式化輸出,參考String.format()

Stringname="cary";intage=18;System.out.printf("Hello,mynameis%s,myageis%d.",name,age);String方法練習(xí)String字符串分割String.split()該方法返回一個(gè)字符串?dāng)?shù)組

regex:定界正則表達(dá)式limit:limit控制模式應(yīng)用的次數(shù),因此影響所得數(shù)組的長(zhǎng)度。同上,limit為0的情況,所得數(shù)組中不包括末尾空字符。?

練習(xí)

String_split.javaStringss="abc:def:xyz";

String[]chars=ss.split(":");System.out.println(Arrays.toString(chars));publicString[]split(Stringregex,intlimit)publicString[]split(Stringregex)[abc,def,xyz]String方法練習(xí)String字符串匹配正則表達(dá)式

Patternpattern=Ppile("b*g");Matchermatcher=pattern.matcher("bbg");System.out.println(matcher.matches());System.out.println(Pattern.matches("b*g","bbg"));//驗(yàn)證郵政編碼System.out.println(Pattern.matches("[0-9]{6}","200038"));System.out.println(Pattern.matches("http://d{6}","200038"));//驗(yàn)證電話號(hào)碼System.out.println(Pattern.matches("[0-9]{3,4}//-?[0-9]+","02178989799"));Java正則表達(dá)式總結(jié)/luosijin123/article/details/4792181StringBuffer類StringBuffer類StringBuffer類用于內(nèi)容可以改變的字符串可以使用StringBuffer來對(duì)字符串的內(nèi)容進(jìn)行動(dòng)態(tài)操作,不會(huì)產(chǎn)生額外的對(duì)象

StringBuffer類StringBuffer對(duì)象的創(chuàng)建構(gòu)造一個(gè)其中不帶字符的字符串緩沖區(qū),其初始容量為16個(gè)字符構(gòu)造一個(gè)不帶字符,但具有指定初始容量的字符串緩沖區(qū)。構(gòu)造一個(gè)字符串緩沖區(qū),并將其內(nèi)容初始化為指定的字符串內(nèi)容。StringBuffer

變量名=newStringBuffer();

StringBuffer

變量名=newStringBuffer(intcapacity

);

StringBuffer

變量名=newStringBuffer(Stringvalue);示例:TestStr.javaStringBuffer類方法含義intcapacity()返回當(dāng)前容量intlength()返回長(zhǎng)度(字符數(shù))StringBufferreverse()將此字符序列用其反轉(zhuǎn)形式取代voidsetCharAt(int,char)將給定索引處的字符設(shè)置為chvoiddelete(intbegin,intend)移除此序列的子字符串中的字符charcharAt(int)返回此序列中指定索引處的char值StringtoString()將StringBuffer對(duì)象轉(zhuǎn)換成相應(yīng)的StringStringBuffer類的常用方法示例StringBuf.java

StringBuffer類StringBuffer類的常用方法方法含義StringBufferappend(Stringstr)將指定的字符串追加到此字符序列StringBufferappend(intnum)將int參數(shù)的字符串表示形式追加到此序列StringBufferappend(Objecto)追加Object參數(shù)的字符串表示形式StringBufferinsert(intindex,Stringstr)將字符串插入此字符序列中StringBufferinsert(intindex,charch)將字符插入此字符序列中StringBufferinsert(intindex,Objecto)將Object參數(shù)的字符串表示形式插入此字符序列中StringBuilder類StringBuilder類StringBuilder類是一個(gè)可變的字符序列。JDK自從5.0版本后引入。StringBuilder類被設(shè)計(jì)用作StringBuffer的一個(gè)簡(jiǎn)易替換,用在字符串緩沖區(qū)被單個(gè)線程使用的時(shí)候。StringBuilder類StringBuilder對(duì)象的創(chuàng)建構(gòu)造一個(gè)不帶任何字符的字符串生成器,其初始容量為16個(gè)字符。構(gòu)造一個(gè)不帶任何字符的字符串生成器,其初始容量由capacity參數(shù)指定。構(gòu)造一個(gè)字符串生成器,并初始化為指定的字符串內(nèi)容

StringBuilder

變量名=newStringBuilder();

StringBuilder

變量名=newStringBuilder(intcapacity

);

StringBuilder

變量名=newStringBuilder(Stringstr);示例:TestStringBuilder.javaStringBuilder類StringBuilder類的常用方法示例

TestStringBuilder.java方法含義intcapacity()返回當(dāng)前容量intlength()返回長(zhǎng)度(字符數(shù))StringBuilderreverse()將此字符序列用其反轉(zhuǎn)形式取代voidsetCharAt(intindex,charch)將給定索引index處的字符設(shè)置為chvoiddelete(intbegin,intend)移除此序列的子字符串中的字符charcharAt(intindex)返回此序列中指定索引處的char值StringtoString()將StringBuilder對(duì)象轉(zhuǎn)換成相應(yīng)的StringStringBuilder類方法含義StringBuilderappend(Stringstr)將指定的字符串追加到此字符序列StringBuilderappend(intnum)將int參數(shù)的字符串表示形式追加到此序列StringBuilderappend(Objecto)追加Object參數(shù)的字符串表示形式StringBuilderinsert(intindex,Stringstr)將字符串插入此字符序列中StringBuilderinsert(intindex,charch)將字符插入此字符序列中StringBuilderinsert(intindex,Objecto)將Object參數(shù)的字符串表示形式插入此字符序列中StringBuilder類的常用方法String類與StringBuffer類的比較StringBuffer類與StringBuilder類的異同Java中定義了String與StringBuffer兩個(gè)類來封裝對(duì)字符串的各種操作

String類與StringBuffer類都被放到了java.lang包中兩者的主要區(qū)別在于String類對(duì)象中的內(nèi)容初始化不可以改變StringBuffer類對(duì)象中的內(nèi)容可以改變StringBuffer與StringBuilderStringBuffer類與StringBuilder類的異同StringBuffer和StringBuilder都是長(zhǎng)度可變的字符串。兩者的操作基本相同。兩者的主要區(qū)別在于StringBuffer類是線程安全的;StringBuilder類是線程不安全的。StringBuffer在JDK1.0中就有,而StringBuilder是在JDK5.0后才出現(xiàn)的。StringBuilder的一些方法實(shí)現(xiàn)要比StringBuffer快些。綜合練習(xí)1.編寫一個(gè)程序,實(shí)現(xiàn)從命令行參數(shù)輸入一字符串,統(tǒng)計(jì)該字符串中字符“e”出現(xiàn)的次數(shù)。2.有一個(gè)字符串,其中包含中文字符、英文字符和數(shù)字字符,請(qǐng)統(tǒng)計(jì)和打印出各個(gè)字符的個(gè)數(shù)。(在Java中,中文字符轉(zhuǎn)換為整型數(shù)值的范圍在[19968,40623)區(qū)間內(nèi))3.有一種數(shù)叫回文數(shù),正讀和反讀都一樣,如12321便是一個(gè)回文數(shù)。編寫一個(gè)程序,從命令行得到一個(gè)整數(shù),判斷該數(shù)是不是回文數(shù)4.教材P98例5.28JavaAPI1Object類2包裝類3字符串類4Math類5日期類型6ContentsMath類Math類Math類提供了大量用于數(shù)學(xué)運(yùn)算的方法Math類是final類,因此不能從Math類繼承Math類中的方法都是static方法,因此不必創(chuàng)建Math類的對(duì)象就可以直接使用該類的方法Math類中的常量publicstaticfinaldoublePIpublicstaticfinaldoubleEMath類Math類中的常用方法方法含義staticintabs(int)返回參數(shù)的絕對(duì)值,返回值類型與參數(shù)類型相同staticdoubleabs(double)返回參數(shù)的絕對(duì)值staticdoubleceil(double)返回大于所給參數(shù)的最小的整數(shù)值staticdoublefloor(double)返回不大于所給參數(shù)的最大的整數(shù)值staticintmax(inta,intb)返回兩個(gè)int值中較大的一個(gè)staticdoublemax(double,double)返回兩個(gè)double值中較大的一個(gè)staticintmin(inta,intb)返回兩個(gè)int值中較小的一個(gè)staticdoublemin(double,double)返回兩個(gè)double值中較小的一個(gè)Math類Math類中的常用方法方法含義staticdoublerandom()返回在0.0~1.0之間的隨機(jī)的double值staticintround(double)返回同所給值最接近的整數(shù),采用4舍5入法staticdoublesin/cos/tan(double)返回給定的弧度值對(duì)應(yīng)的三角函數(shù)值staticdoublesqrt(double)返回所給值的平方根,若所給值為負(fù)數(shù)則返回NaNRandom類Random類Random類常用方法doublenextDouble()返回下一個(gè)偽隨機(jī)數(shù),在0.0和1.0之間均勻分布的double值intnextInt(intn)返回下一個(gè)偽隨機(jī)數(shù),在[0,n)之間的int值Random():創(chuàng)建一個(gè)新的隨機(jī)數(shù)生成器。Random(longseed):使用單個(gè)long種子創(chuàng)建一個(gè)新的隨機(jī)數(shù)生成器綜合練習(xí)1.生成十個(gè)0~100之間的隨機(jī)數(shù),放到數(shù)組中,然后分別對(duì)數(shù)組進(jìn)行冒泡排序和直接選擇排序輸出。JavaAPI1Object類2包裝類3字符串類4Math類5日期類型6ContentsDate類Date類java.util.Date。Date類表示指定的時(shí)間信息,可以精確到毫秒。不支持國(guó)際化。該類的許多方法已過時(shí)。獲取當(dāng)前系統(tǒng)時(shí)間:示例:TestDate.java

newDate()

溫馨提示

  • 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. 人人文庫網(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)論