




已閱讀5頁(yè),還剩40頁(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)介
Java 語(yǔ)言程序設(shè)計(jì),天津理工大學(xué) 計(jì)算機(jī)與通信工程學(xué)院 主講教師:孫世溫 ,2019/7/19,第6章 第7章 Java中的常用類,第 2 頁(yè),第6章 字符串和正則表達(dá)式 第7章 常用實(shí)用類,2019/7/19,第6章 第7章 Java中的常用類,第 3 頁(yè),主要內(nèi)容,Object 類 System 類 Math 類 基本數(shù)據(jù)類型的包裹類 BigInteger 類 字符串相關(guān)類 String 類 StringBuffer 類 StringTokenizer 類 Date 類 Calender 類 正則匹配表達(dá)式,2019/7/19,第6章 第7章 Java中的常用類,第 4 頁(yè),Object 類“根”類,Object類定義在java.lang包中 所有的Java類派生自O(shè)bject類 如果一個(gè)類沒(méi)有用extends繼承其他類,則它繼承Object Object類是所有類層次結(jié)構(gòu)的終極根類 Object包含一些有用的方法,這些方法被所有子類繼承,2019/7/19,第6章 第7章 Java中的常用類,第 5 頁(yè),Object 類“根”類,Object類定義的方法之一:toString Object類的toString方法被定義返回一個(gè)字符串,包含對(duì)象的類名和對(duì)象的地址值 自定義的類重寫(xiě)toString方法,實(shí)質(zhì)是覆蓋了父類的toString方法 用println方法輸出一個(gè)對(duì)象時(shí),默認(rèn)調(diào)用toString方法;如果自定義了toString方法,就調(diào)用自定義的;如果沒(méi)有自定義,就調(diào)用繼承來(lái)的toString方法,【例 toString的例子】,2019/7/19,第6章 第7章 Java中的常用類,第 6 頁(yè),Object 類“根”類,Object類定義的方法之二:equals Object類的equals方法確定兩個(gè)引用變量是否是別名,與= =的用法相同(is identical to) 子類一般通過(guò)覆蓋Object的equals方法實(shí)現(xiàn)更有意義的測(cè)試,可以實(shí)現(xiàn):若同一類型的兩個(gè)不同對(duì)象包含相同的信息即返回true(is equals to) 很多Java標(biāo)準(zhǔn)類都重新定義了自己的equals方法,實(shí)現(xiàn)兩個(gè)對(duì)象的相等性比較,【例 TestEquals.java】,2019/7/19,第6章 第7章 Java中的常用類,第 7 頁(yè),System類,有三個(gè)標(biāo)準(zhǔn)I/O對(duì)象,又叫控制臺(tái)I/O 標(biāo)準(zhǔn)輸入(鍵盤(pán)) 由System.in定義 標(biāo)準(zhǔn)輸出(顯示器)由System.out定義 標(biāo)準(zhǔn)錯(cuò)誤輸出(顯示器)由System.err定義 當(dāng)執(zhí)行print或println語(yǔ)句時(shí),我們使用System.out對(duì)象 System.in是InputStream類的對(duì)象 用System.in.read( )從鍵盤(pán)讀入一個(gè)字符,2019/7/19,第6章 第7章 Java中的常用類,第 8 頁(yè),基本數(shù)據(jù)類型的包裹類,Java的每種基本類型(8種)都有一個(gè)類與之對(duì)應(yīng),2019/7/19,第6章 第7章 Java中的常用類,第 9 頁(yè),包裹類使用示例,Boolean wrapBool = new Boolean(“false“); Integer num1 = new Integer (“31“); Integer num2 = new Integer(“3“); int sum = Value() * Value();,intValue() 返回調(diào)用對(duì) 象的整型值,class CmdArg public static void main(String args) int sum = 0; for(int cnt = 0; cnt args.length; cnt+) sum+=Integer.parseInt(argscnt); System.out.println(“和為:“+sum); ,parseInt()方法將執(zhí)行 從字符串轉(zhuǎn)換成與之相 應(yīng)的整型(int)值,2019/7/19,第6章 第7章 Java中的常用類,第 10 頁(yè),Math類科學(xué)計(jì)算類,Math類定義在java.lang包中 其中包含許多數(shù)學(xué)計(jì)算方法: public static long abs(double a) 返回a的絕對(duì)值。 public static double max(double a,double b) 返回a、 b的最大值。 public static double min(double a,double b) 返回a、b的最小值。,2019/7/19,第6章 第7章 Java中的常用類,第 11 頁(yè),public static double random() 產(chǎn)生一個(gè)0到1之間的隨機(jī)數(shù)(不包括0和1)。 public static double pow(double a,double b) 返回a的b次冪。 public static double sqrt(double a) 返回a平方根。 public static double log(double a) 返回a的對(duì)數(shù)。 public static double sin(double a) 返回正弦值。 public static double asin(double a) 返回反正弦。 ,2019/7/19,第6章 第7章 Java中的常用類,第 12 頁(yè),NumberFormat類數(shù)字的格式化輸出,NumberFormat類類調(diào)用類方法: public static final NumberFormat getInstance()實(shí)例化一個(gè)NumberFormat對(duì)象 該對(duì)象調(diào)用 public final String format(double number) 方法可以格式化數(shù)字number NumberFormat類有如下常用方法: void setMaximumFractionDigits(int newValue) void setMinimumFractionDigits(int newValue) void setMaximumIntegerDigits(int newValue) void setMinimumIntegerDigits(int newValue),【例7-4】,2019/7/19,第6章 第7章 Java中的常用類,第 13 頁(yè),BigInteger類大整數(shù)類,java.math包中的BigInteger類提供任意精度的整數(shù)運(yùn)算 構(gòu)造方法: public BigInteger(String val) 類的常用方法: public BigInteger add(BigInteger val) public BigInteger subtract(BigInteger val) public BigInteger multiply(BigInteger val) public BigInteger divide(BigInteger val),2019/7/19,第6章 第7章 Java中的常用類,第 14 頁(yè),public BigInteger remainder(BigInteger val) public int compareTo(BigInteger val) public BigInteger abs() public BigInteger pow(int exponent) public String toString() 返回當(dāng)前大整數(shù)對(duì)象 十進(jìn)制的字符串表示 public String toString(int p) 返回當(dāng)前大整數(shù)對(duì)象p進(jìn)制的字符串表示,【例7-6】,2019/7/19,第6章 第7章 Java中的常用類,第 15 頁(yè),String類不可變字符串,構(gòu)建String對(duì)象 String s=new String(“I love Java”) String s1=“I love Java”; String s2=new String(s); char Ar=J, a, v, a; String s3=new String(Ar); String s4=new String(Ar,2,2);,構(gòu)造函數(shù)String(char a,int startIndex,int count): 提取字符數(shù)組a 中的一部分字符創(chuàng)建一個(gè)字符串對(duì)象, 參數(shù)startIndex:在a中提取字符的起始位置 count: 從指定位置開(kāi)始截取的字符個(gè)數(shù),2019/7/19,第6章 第7章 Java中的常用類,第 16 頁(yè),String類中的常用方法: (1)返回長(zhǎng)度:public int length() (2)比較: public boolean equals(String s) 比較當(dāng)前字符串對(duì)象的實(shí)體是否與參數(shù)指定的字符串s的實(shí)體相同 public int compareTo(String s)按字典序與參數(shù)s指定的字符串比較大小。 (3)判斷 public boolean startsWith(String s) public boolean endsWith(String s),2019/7/19,第6章 第7章 Java中的常用類,第 17 頁(yè),(4)檢索 public int indexOf (String s) public int indexOf(String s ,int startpoint) public int lastIndexOf (String s) (5)子串 public String substring(int startpoint) public String substring(int start ,int end) public String trim() (6)替換 public String replaceAll(String old ,String new),2019/7/19,第6章 第7章 Java中的常用類,第 18 頁(yè),字符串 基本數(shù)據(jù) 基本數(shù)據(jù)類型包裹類中方法: public static XXX parseXXX(String s) 將“數(shù)字”格式的字符串,轉(zhuǎn)化為相應(yīng)的基本數(shù)據(jù)類型 如:Integer類的方法: public static int parseInt(String s),2019/7/19,第6章 第7章 Java中的常用類,第 19 頁(yè),基本數(shù)據(jù) 字符串 使用String 類的下列類方法: public String valueOf(byte n) public String valueOf(int n) public String valueOf(long n) public String valueOf(float n) public String valueOf(double n) 對(duì)象的字符串表示 重寫(xiě)toString()方法,2019/7/19,第6章 第7章 Java中的常用類,第 20 頁(yè),String與字符數(shù)組(char ) 利用字符數(shù)組構(gòu)建字符串 String(char ) String(char ,int offset,int length) 將字符串存放到字符數(shù)組中 public void getChars (int start,int end,char c ,int offset ) public char toCharArray(),【例6-4】,2019/7/19,第6章 第7章 Java中的常用類,第 21 頁(yè),String與字節(jié)數(shù)組(byte ) 利用字節(jié)數(shù)組構(gòu)建字符串 String(byte ) String(byte ,int offset,int length) 字符串轉(zhuǎn)化為字節(jié)數(shù)組 public byte getBytes(),【例6-5】,2019/7/19,第6章 第7章 Java中的常用類,第 22 頁(yè),StringBuffer類可變字符串,String類字符串不能修改、刪除或替換字符串中的某個(gè)字符 StringBuffer類能創(chuàng)建可修改的字符串序列 StringBuffer類有三個(gè)構(gòu)造方法: (1)StringBuffer() (2)StringBuffer(int size) (3)StringBuffer(String s),2019/7/19,第6章 第7章 Java中的常用類,第 23 頁(yè),StringBuffer類的常用方法: (1)append方法 (2)char charAt(int n) (3)void setCharAt (int n , char ch) (4)StringBuffer insert(int index, String str) (5)StringBuffer reverse() (6)StringBuffer delete(int startIndex, int endIndex) (7)StringBuffer replace( int startIndex ,int endIndex, String str),【例6-6】,2019/7/19,第6章 第7章 Java中的常用類,第 24 頁(yè),StringTokenizer類字符串分解,使用java.util包中的StringTokenizer類將字符串分解成可被獨(dú)立使用的單詞 StringTokenizer類的構(gòu)造方法 StringTokenizer(String s) 為字符串s構(gòu)造一個(gè)分析器。使用默認(rèn)的分隔符集合,即空格符(若干個(gè)空格被看做一個(gè)空格)、換行符、回車(chē)符、Tab符、進(jìn)紙符。 StringTokenizer(String s, String delim) 為字符串s構(gòu)造一個(gè)分析器,參數(shù)dilim中的字符被作為分隔符。,【例6-7】,2019/7/19,第6章 第7章 Java中的常用類,第 25 頁(yè),Date類時(shí)間、日期,Date類構(gòu)造方法 無(wú)參Date()創(chuàng)建的對(duì)象可以獲取本地當(dāng)前時(shí)間 Date(long time)創(chuàng)建的Date對(duì)象表 示相對(duì)1970年1月1日0點(diǎn)(GMT)的時(shí)間 System類currentTimeMillis()獲取系統(tǒng)當(dāng)前時(shí)間,這個(gè)時(shí)間是從1970年1月1日0點(diǎn)(GMT)到目前時(shí)刻所走過(guò)的毫秒數(shù),2019/7/19,第6章 第7章 Java中的常用類,第 26 頁(yè),使用DateFormat的子類SimpleDateFormat來(lái)實(shí)現(xiàn)日期的格式化 SimpleDateFormat有一個(gè)常用構(gòu)造方法:public SimpleDateFormat(String pattern)該構(gòu)造方法可以用參數(shù)pattern指定的格式創(chuàng)建一個(gè)對(duì) 象 SimpleDateFormat類的對(duì)象調(diào)用 format(Date date)方法格式化時(shí)間對(duì)象date,2019/7/19,第6章 第7章 Java中的常用類,第 27 頁(yè),pattern中含有“時(shí)間元字符”,即要輸出的日期的格式設(shè)定 y或yy 表示用2位數(shù)字輸出年份; yyyy 表示用4位數(shù)字輸出年份; M或MM 表示用2為數(shù)字或文本輸出月份; d 或dd 表示用2位數(shù)字輸出日; H或HH 表示用兩位數(shù)字輸出小時(shí); m或mm 表示用兩位數(shù)字輸出分; s或ss 表示用兩位數(shù)字輸出秒; E 表示用字符串輸出星期;,【例7-1】,2019/7/19,第6章 第7章 Java中的常用類,第 28 頁(yè),Calender類日歷,使用Calendar類的static方法getInstance()可以初始化一個(gè)日歷對(duì)象,如: Calendar calendar= Calendar.getInstance(); calendar對(duì)象可以調(diào)用方法: public final void set(int year,int month,int date) public final void set(int year,int month,int date,int hour,int minute) public final void set(int year,int month, int date, int hour, int minute,int second) public int get(int field) 可以獲取有關(guān)年份、月份、小時(shí)、星期等信息,【例7-2】,【例7-3】,2019/7/19,第6章 第7章 Java中的常用類,第 29 頁(yè),正則表達(dá)式之 Backus-Naur范式(BNF),元符號(hào):BNF規(guī)定了一些符號(hào)作為描述語(yǔ)法的機(jī)制,稱作元符號(hào),包括: := 表示“定義為”。 | 表示“或者”。 表示“任選”,即方括號(hào)內(nèi)的內(nèi)容可以出現(xiàn)一次或不出現(xiàn)。 表示“重復(fù)”,即花括號(hào)內(nèi)的內(nèi)容可以出現(xiàn)零次或任意多次。 終結(jié)符號(hào):BNF中不必定義的符號(hào)或字符串,如A、B、0、1等,2019/7/19,第6章 第7章 Java中的常用類,第 30 頁(yè),非終結(jié)符號(hào):在用法規(guī)則中需要加以定義的語(yǔ)法變量,如字母、數(shù)字、標(biāo)識(shí)符 a_06 , list 等 每一個(gè)非終結(jié)符號(hào)都必須有一個(gè)規(guī)則定義它,非終結(jié)符號(hào)按規(guī)則總是可以展開(kāi)為一串終結(jié)符號(hào)。,正則表達(dá)式之 Backus-Naur范式(BNF),2019/7/19,第6章 第7章 Java中的常用類,第 31 頁(yè),例:標(biāo)識(shí)符的BNF描述。 標(biāo)識(shí)符 := 字母 字母 | 數(shù)字 字母 := A | B | | Z | a | b | | z | _ 數(shù)字 := 0 | 1 | | 9,正則表達(dá)式之 Backus-Naur范式(BNF),2019/7/19,第6章 第7章 Java中的常用類,第 32 頁(yè),正則表達(dá)式與模式匹配,1正則表達(dá)式 一個(gè)正則表達(dá)式是含有一些具有特殊意義字符的字符串,這些特殊字符稱作正則表達(dá)式中的元字符。 “dok”中的d就是有特殊意義的元字符,代表0到9中的任何一個(gè)。 一個(gè)正則表達(dá)式也稱作一個(gè)模式. 字符串“9ok”和“1ok”都是和模式:“dok”匹配的字符串之一。 和一個(gè)模式匹配的字符串稱作匹配模式字符串,也稱作模式匹配字符串。,2019/7/19,第6章 第7章 Java中的常用類,第 33 頁(yè),正則表達(dá)式與模式匹配,2模式匹配 模式匹配就是檢索和指定模式匹配的字符串。 Java提供了專門(mén)用來(lái)進(jìn)行模式匹配的類,這些類在java.util.regex包中。,2019/7/19,第6章 第7章 Java中的常用類,第 34 頁(yè),(1)建立模式對(duì)象 進(jìn)行模式匹配的第一步就是使用Pattern類創(chuàng)建一個(gè)對(duì)象,稱作模式對(duì)象。 Pattern類調(diào)用類方法compile(String patter)來(lái)完成這一任務(wù),其中的參數(shù)patter是一個(gè)正則表達(dá)式,稱作模式對(duì)象使用的模式。 【例】我們使用正則表達(dá)式“Ad”建立一個(gè)模式對(duì)象p: Pattern p= Ppile(“Ad“); 如果參數(shù)patter指定的正則表達(dá)式有錯(cuò),complie方法將拋出異常:PatternSyntaxException。,2019/7/19,第6章 第7章 Java中的常用類,第 35 頁(yè),Pattern類也可以調(diào)用類方法compile(String regex, int flags)返回一個(gè)Pattern對(duì)象。 參數(shù)flags可以取下列有效值: Pattern .CASE_INSENSITIVE Pattern.MULTILINE Pattern.DOTALL Pattern.UNICODE_CASE Pattern.CANON_EQ flags取值Pattern .CASE_INSENSITIVE,模式匹配時(shí)將忽略大小寫(xiě)。,2019/7/19,第6章 第7章 Java中的常用類,第 36 頁(yè),(2)建立匹配對(duì)象 模式對(duì)象p調(diào)用matcher(CharSequence input)方法返回一個(gè)Matcher對(duì)象m,稱作匹配對(duì)象。 參數(shù)input可以是任何一個(gè)實(shí)現(xiàn)了CharSequence接口的類創(chuàng)建的對(duì)象。 String類和StringBuffer類都使用了CharSequence接口。,2019/7/19,第6章 第7章 Java中的常用類,第 37 頁(yè),public boolean find( ) 尋找input和patter匹配的下一子序列 public boolean matches( ) 判斷input是否完全和patter匹配。 public boolean lookingAt( ) 判斷從input的開(kāi)始位置是否有和patter匹配的子序列。,一個(gè)Matcher對(duì)象m可以使用下列3個(gè)方法尋找參數(shù)input指定的字符序列中是否有和模式patter匹配的子序列(patter是創(chuàng)建模式對(duì)象p時(shí)使用的正則表達(dá)式)。,2019/7/19,第6章 第7章 Java中的常用類,第 38 頁(yè),Matcher對(duì)象m常用的方法: public boolean find(int start) 判斷input從參數(shù)start指定位置開(kāi)始是否有和patter匹配的子序列,參數(shù)start取值0時(shí),該方法和lookingAt( )的功能相同。 public String replaceAll(String replacement) Matcher對(duì)象m調(diào)用該方法可以返回一個(gè)字符串對(duì)象,該字符串是通過(guò)把input中與模式patter匹配的子字符串全部替換為參數(shù)replacement指定的字符串得到的(注意,input本身沒(méi)有發(fā)生變化)。 public String replaceFirst(String replacement) Matcher對(duì)象m調(diào)用該方法可以返回一個(gè)字符串對(duì)象,該字符串是通過(guò)把input中第1個(gè)與模式patter匹配的子字符串替換為參數(shù)replacement指定的字符串得到的(注意,input本身沒(méi)有發(fā)生變化)。,【例6-8】,2019/7/19,第6章 第7章 Java中的常用類,第 39 頁(yè),元字符模式,在正則表達(dá)式(模式)中可以使用一對(duì)中括號(hào)括起若干個(gè)字符,代表中括號(hào)中的任何一個(gè)字符。 【例】pattern=“159ABC” “1ABC” 、“5ABC”和“9ABC”都是和模式pattern匹配
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 神經(jīng)外科護(hù)理新進(jìn)展
- 消化內(nèi)科主治醫(yī)師工作體系
- 老年友善管理培訓(xùn)
- 我愛(ài)吃飯:大班健康飲食教育
- 護(hù)理學(xué)查房模板
- 中醫(yī)健康養(yǎng)生之道
- 食品安全安全教育
- 健康的小學(xué)生
- 初二心理健康教育指導(dǎo)綱要
- 弟子規(guī)家長(zhǎng)培訓(xùn)會(huì)
- 北京昌平霍營(yíng)街道社區(qū)“兩委”干部?jī)?chǔ)備人才招募筆試真題2024
- 2024年 黃岡市法院系統(tǒng)招聘審判輔助人員考試真題試題含答案
- ktv營(yíng)銷經(jīng)理管理制度
- 公司消防網(wǎng)格化管理制度
- 5.3.1探究酵母菌的呼吸方式課件高一上學(xué)期生物人教版必修1
- 護(hù)士職業(yè)溝通技巧課件
- 農(nóng)村村務(wù)管理課件
- 2025至2030中國(guó)氧化鋁纖維行業(yè)供需趨勢(shì)及投資風(fēng)險(xiǎn)報(bào)告
- 2024年佛山市南海區(qū)圖書(shū)館招聘考試真題
- NAMPT調(diào)控NAD代謝影響椎間盤(pán)退變的分子機(jī)制與干預(yù)策略研究
- 地方病防治測(cè)試題及答案
評(píng)論
0/150
提交評(píng)論