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

下載本文檔

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

文檔簡介

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

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

示例:ObjectSample.javapublicbooleanequals(Object

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

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

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

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

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

變量名=newString();

String

變量名=newString(String

value);

String

變量名=newString(StringBufferbuf);

String

變量名=“hello”;String類“+”字符串連接運算符連接操作符“+”,可以將其它各種類型的數(shù)據(jù)轉換成字符串,并前后連接成新的字符串?練習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類的性質示例

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

?

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

,d:以十進制整數(shù)帶逗號的方式來表示;

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

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

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

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

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

練習

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方法練習String字符串匹配正則表達式

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

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

變量名=newStringBuffer();

StringBuffer

變量名=newStringBuffer(intcapacity

);

StringBuffer

變量名=newStringBuffer(Stringvalue);示例:TestStr.javaStringBuffer類方法含義intcapacity()返回當前容量intlength()返回長度(字符數(shù))StringBufferreverse()將此字符序列用其反轉形式取代voidsetCharAt(int,char)將給定索引處的字符設置為chvoiddelete(intbegin,intend)移除此序列的子字符串中的字符charcharAt(int)返回此序列中指定索引處的char值StringtoString()將StringBuffer對象轉換成相應的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類是一個可變的字符序列。JDK自從5.0版本后引入。StringBuilder類被設計用作StringBuffer的一個簡易替換,用在字符串緩沖區(qū)被單個線程使用的時候。StringBuilder類StringBuilder對象的創(chuàng)建構造一個不帶任何字符的字符串生成器,其初始容量為16個字符。構造一個不帶任何字符的字符串生成器,其初始容量由capacity參數(shù)指定。構造一個字符串生成器,并初始化為指定的字符串內容

StringBuilder

變量名=newStringBuilder();

StringBuilder

變量名=newStringBuilder(intcapacity

);

StringBuilder

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

TestStringBuilder.java方法含義intcapacity()返回當前容量intlength()返回長度(字符數(shù))StringBuilderreverse()將此字符序列用其反轉形式取代voidsetCharAt(intindex,charch)將給定索引index處的字符設置為chvoiddelete(intbegin,intend)移除此序列的子字符串中的字符charcharAt(intindex)返回此序列中指定索引處的char值StringtoString()將StringBuilder對象轉換成相應的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兩個類來封裝對字符串的各種操作

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

newDate()

溫馨提示

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

評論

0/150

提交評論