版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第6章章 數(shù)組、字符數(shù)組、字符串和實用類串和實用類數(shù)組數(shù)組字符串類字符串類數(shù)組類和向量類數(shù)組類和向量類Java語言基礎類庫語言基礎類庫 實例學習實例學習課程內(nèi)容二二三三四四五五一一項目學做項目學做六六一、數(shù)組一、數(shù)組 一、數(shù)組一、數(shù)組 數(shù)組就是一組命名變量,其中的每個變量被稱數(shù)組就是一組命名變量,其中的每個變量被稱之為數(shù)組元素。之為數(shù)組元素。根據(jù)下標個數(shù)的多少分類:根據(jù)下標個數(shù)的多少分類: 數(shù)組是有序數(shù)據(jù)的集合數(shù)組是有序數(shù)據(jù)的集合數(shù)組是一種最簡單的復合數(shù)據(jù)類型數(shù)組是一種最簡單的復合數(shù)據(jù)類型數(shù)組中的每個元素具有相同的數(shù)據(jù)類型數(shù)組中的每個元素具有相同的數(shù)據(jù)類型數(shù)組中的元素可以用一個統(tǒng)一的數(shù)組名和
2、下標來唯一地確定定義定義一維數(shù)組一維數(shù)組多維數(shù)組多維數(shù)組1、一維數(shù)組v 只有只有一個下標一個下標的數(shù)組稱為一維數(shù)組。的數(shù)組稱為一維數(shù)組。v 在使用數(shù)組之前必須要在使用數(shù)組之前必須要初始化初始化v 一維數(shù)組的聲明一維數(shù)組的聲明說明數(shù)組變量的名稱和數(shù)組元素的數(shù)據(jù)類型。聲明格式:聲明格式:datatype arrayName ;或datatype arrayName;其中datatype可以為Java中任意的數(shù)據(jù)類型,包括簡單類型和復合類型。arrayName為數(shù)組的名字,命名符合標識符的規(guī)定。如:int mathScore;為數(shù)組分配內(nèi)存空間,并為每個數(shù)組元素賦初始值。 1、一維數(shù)組v 定義數(shù)組的
3、大小(申請內(nèi)存空間)定義數(shù)組的大?。ㄉ暾垉?nèi)存空間)v 數(shù)組初始化數(shù)組初始化靜態(tài)初始化:靜態(tài)初始化:在聲明和定義數(shù)組的同時,給數(shù)組元素賦初值。動態(tài)初始化:動態(tài)初始化:先聲明和定義數(shù)組,然后再賦值。 簡單類型簡單類型 復合類型復合類型格式:格式:arrayName =new datatype numberOfArrayElemnt;其中,numberOfArrayElemnt表示數(shù)組元素的個數(shù),即數(shù)組的長度或大小,是整型表達式。例如:例如:在上面對mathScore聲明之后,就可以定義其大小。mathScore = new int10;/定義數(shù)組的10個元素 1、一維數(shù)組v 一維數(shù)組的重定義一維數(shù)
4、組的重定義v 一維數(shù)組的長度(一維數(shù)組的長度(lengthlength屬性)屬性)v 一維數(shù)組元素的引用一維數(shù)組元素的引用其實數(shù)組是作為其實數(shù)組是作為對象對象來處理的,所有的數(shù)組對象都有來處理的,所有的數(shù)組對象都有l(wèi)ength (長度長度)屬性,用來記錄數(shù)組中元素的個數(shù)。屬性,用來記錄數(shù)組中元素的個數(shù)。所謂重定義也稱重用,即是在程序中可以改變數(shù)組的大小所謂重定義也稱重用,即是在程序中可以改變數(shù)組的大?。ㄖ匦露x數(shù)組)。(重新定義數(shù)組)。數(shù)組元素的引用方式為:數(shù)組元素的引用方式為:arrayNameindexindex為數(shù)組下標,它可以為整型常數(shù)或表達式,下標從0開始到arrayName.len
5、gth-1。例例6-1:將多個學生某課程的成績放到一個數(shù)組中,然后計算學生的平均成績。(6-1.txt)1、一維數(shù)組v 例例6-1:將多個學生某課程的成績放到一個數(shù)組中,:將多個學生某課程的成績放到一個數(shù)組中,然后計算學生的平均成績。(然后計算學生的平均成績。(6-1.txt)/* *這是一個利用數(shù)組存放學生成績,統(tǒng)計學生平均成績的示例程序這是一個利用數(shù)組存放學生成績,統(tǒng)計學生平均成績的示例程序 *程序的名字是:程序的名字是:AverageScore.java*/ public class AverageScore public static void main(String args) in
6、t score=72,89,65,58,87,91,53,82,71,93,76,68;/聲明定義初始化聲明定義初始化 float average=0.0f;/部分和,最后存放平均值部分和,最后存放平均值 for(int i=0; iscore.length; i+) average+=scorei; /成績累加和(部分和)成績累加和(部分和) average/=score.length; /求平均求平均 System.out.println(average=+average); 1、一維數(shù)組v foreachforeach循環(huán)循環(huán)使用使用foreach循環(huán)遍歷數(shù)組時,無須獲得數(shù)組和集合長度,
7、無須根據(jù)循環(huán)遍歷數(shù)組時,無須獲得數(shù)組和集合長度,無須根據(jù)索引來訪問數(shù)組元素和集合元素,索引來訪問數(shù)組元素和集合元素,foreach循環(huán)會自動遍歷數(shù)組。循環(huán)會自動遍歷數(shù)組。格式:格式:for(type variableName:array | collection)/variableName 自動迭代訪問每個元素 應為variableName例例6-2:使用foreach循環(huán)來遍歷數(shù)組元素。(6-2.txt)1、一維數(shù)組v 例例6-2:使用:使用foreach循環(huán)來遍歷數(shù)組元素。(循環(huán)來遍歷數(shù)組元素。(6-2.txt)public class ForEachTest public static
8、void main(String args)String books=大學計算機基礎大學計算機基礎,Java程序設計程序設計,操作系統(tǒng)操作系統(tǒng);for(String book:books)System.out.println(book);運行結(jié)果運行結(jié)果:大學計算機基礎Java程序設計操作系統(tǒng) 2、二維數(shù)組v 帶有兩個下標的數(shù)組稱為二維數(shù)組。帶有兩個下標的數(shù)組稱為二維數(shù)組。v 聲明聲明v 初始化初始化與一維數(shù)組類似,可以先聲明后定義,也可將聲明和定義合二為一。聲明與定義格式:聲明與定義格式:datatype arrayName ;或:datatype arrayName;或:arrayName
9、=new datatypearrayLength1 arrayLength2;或:datatype arrayName =new datatypearrayLength1 arrayLength2;靜態(tài)初始化靜態(tài)初始化動態(tài)初始化動態(tài)初始化 2、二維數(shù)組v 不同長度的二維數(shù)組不同長度的二維數(shù)組v 二維數(shù)組元素的引用二維數(shù)組元素的引用對二維數(shù)組中的每個元素,引用方式為:對二維數(shù)組中的每個元素,引用方式為:arrayNameindex1index2arrayNameindex1index2例6-3:設有三個矩陣A、B、C,A和B矩陣相乘,結(jié)果放入C中,即 C=AB。(6-3.txt)要求:Alm B
10、mn = Cln計算公式:Cij=aik*bkj 其中: i=0l , j=0n , k=0m在有些具體的應用中,每行元素的個數(shù)不是相等的,在有些具體的應用中,每行元素的個數(shù)不是相等的,Java允許生成具有不同長度的多維數(shù)組。允許生成具有不同長度的多維數(shù)組。2、二維數(shù)組v 例例6-36-3:設有三個矩陣:設有三個矩陣A A、B B、C C,A A和和B B矩陣相乘,結(jié)果放入矩陣相乘,結(jié)果放入C C中,即中,即 C=AC=AB B。(6-3.txt)(6-3.txt)public class A_multiply_B public static void main(String args) fl
11、oat B= 1,2,3,4,5,6,7,8,9 ;/聲明定義初始化二維數(shù)組聲明定義初始化二維數(shù)組B float A=1,2,3,4,5,6 ;/聲明定義初始化二維數(shù)組聲明定義初始化二維數(shù)組A float C=new float23 ; /聲明定義二維數(shù)組聲明定義二維數(shù)組C int i,j,k; for (i=0; i2;i+) /控制控制C中的行數(shù)中的行數(shù) for (j=0;j3 ;j+)/控制控制C中的列數(shù)中的列數(shù) for (k=0;k3;k+) Cij+=Aik*Bkj;/計算計算C中的每個元素中的每個元素 System.out.print(Cij+ ); System.out.prin
12、tln(n); 二、字符串類二、字符串類 二、字符串類二、字符串類 1、String類類在在Java語言中,字符是一基本的數(shù)據(jù)類型,而字符串是抽象的語言中,字符是一基本的數(shù)據(jù)類型,而字符串是抽象的數(shù)據(jù)類型,只能使用對象表示字符串。數(shù)據(jù)類型,只能使用對象表示字符串。定義定義字符串類字符串類String用于創(chuàng)建字符串對象,并且創(chuàng)建的字符串(對象)用于創(chuàng)建字符串對象,并且創(chuàng)建的字符串(對象)不能被改變,也就是說字符串對象中的字符是不能修改的(如在不能被改變,也就是說字符串對象中的字符是不能修改的(如在一個字符串對象中添加字符、刪除字符、修改字符等),稱為一個字符串對象中添加字符、刪除字符、修改字符等
13、),稱為字字符串常量符串常量。(1)String類的構(gòu)造函數(shù) String() String(String value) String(char value)例例6-4:使用字符數(shù)組,創(chuàng)建一個字符串對象,并顯示字符串對象中的字符串。(6-4.txt)1、String類類v 例例6-4:使用字符數(shù)組,創(chuàng)建一個字符串對象,并顯示字:使用字符數(shù)組,創(chuàng)建一個字符串對象,并顯示字符串對象中的字符串。(符串對象中的字符串。(6-4.txt)class Array_string public static void main(String args) /聲明定義初始化字符數(shù)組聲明定義初始化字符數(shù)組char
14、c = J, a, v, a, ,i,s, ,O,O,P; String s1 = new String(c);/創(chuàng)建字符串對象創(chuàng)建字符串對象String s2 = new String(s1); / System.out.println(s1);/打印打印System.out.println(s2); 二、字符串類二、字符串類(2)字符串的操作對字符串處理時,可使用String類提供的幾個常用方法(用于對字符串進行處理):charAt(int index)獲取指定位置的字符;length()求字符串長度;concat(String str)連接兩個字符串;copyValueOf(char v
15、alue) 字符數(shù)組轉(zhuǎn)換成字符串;replace(char ch1,char ch2) 字符串中的字符ch1用ch2替換;還有其他很多處理字符串的方法。還有其他很多處理字符串的方法。例6-5:比較字符串(6-5.txt)將截取的子字符串放到字符數(shù)組中時,可使用方法void getChars(int startIndex,int endIndex, char target,int targetStart),從startIndex到endIndex的字符在字符數(shù)組target從targetStart起存放,應保證能夠容納下。例6-6:截取字符串(6-6.txt)1、String類類v 例例6-5:
16、比較字符串(:比較字符串(6-5.txt)class Equalspublic static void main(String args) String s1 = Hello; String s2 = Hello; String s3 = Good-bye; String s4 = HELLO; System.out.println(s1+ equals + s2 + : +s1.equals(s2);/trueSystem.out.println(s1+ equals +s3+ : +s1.equals(s3);/false System.out.println(s1+ equals +s4
17、+ : +s1.equals(s4);/false System.out.println(s1+ equalsIgnoreCase + s4 + : +s1.equalsIgnoreCase(s4);/true,忽略大小寫,忽略大小寫 System.out.println(s1+ = +s2+: +(s1=s2);/false,=為對為對象比較,象比較,/s1與與s2不是一個對象,所以不是一個對象,所以2不相等。不相等。1、String類類v 例例6-6:截取字符串(:截取字符串(6-6.txt)class getCharspublic static void main(String args
18、) String s = This is a getChars method.; int start = 10;/第一個字符的位置(索引)為第一個字符的位置(索引)為0,10代表第代表第11個字符位置個字符位置 int end = 18;/第第19個字符位置個字符位置 char buf = new charend - start; s.getChars(start, end, buf, 0); System.out.println(buf);運行結(jié)果運行結(jié)果:getChars 二、字符串類二、字符串類 2、 StringBuffer類類當需要當需要改變字符串的值改變字符串的值時,可使用時,可使
19、用StringBuffer類,它提供了對字類,它提供了對字符串內(nèi)容進行動態(tài)修改的功能符串內(nèi)容進行動態(tài)修改的功能動態(tài)添加,插入、替換等。動態(tài)添加,插入、替換等。(1)該類提供三個構(gòu)造方法)該類提供三個構(gòu)造方法 StringBuffer() StringBuffer(int length) StringBuffer(String str) *與與String不同,應該使用不同,應該使用StringBuffer的構(gòu)造函數(shù)創(chuàng)建對象,不能的構(gòu)造函數(shù)創(chuàng)建對象,不能定義定義StringBuffer類型的變量。類型的變量。如:StringBuffer sb =”This is StringBuffer”;是不
20、允許的(2)對字符串的修改)對字符串的修改 1)添加操作)添加操作 使用該類的使用該類的append()方法,將一個字符串添加到一個字串緩沖區(qū)的后方法,將一個字符串添加到一個字串緩沖區(qū)的后面。面。 2)插入操作)插入操作 使用的是使用的是StringBuffer類的類的insert(int offset, representation)方法,用方法,用于在指定的位置插入給定的量。于在指定的位置插入給定的量。 二、字符串類二、字符串類3)刪除)刪除delete(int start,int end)方法用于刪除從方法用于刪除從startend之間的字符串;之間的字符串;deleteCharAt(i
21、nt index)方法用于刪除位置方法用于刪除位置index處的字符。處的字符。4)替換)替換replace(int start,int end,String str)用字符串用字符串str替換替換start到到end之間的字之間的字符串。符串。例6-7:將“Java programming!”中的子串“Java”替換成“This is Turbo C”。(6-7.txt)StringBuffer類中的幾個常用方法:類中的幾個常用方法:toString()將字符串緩沖區(qū)轉(zhuǎn)換為字符串;charAt(int index)取指定位置的字符;getChars(int srcBegin,int srcE
22、nd,chardst,int dstBegin)取指定位置的字符到字符數(shù)組dst中l(wèi)ength()返回當前對內(nèi)容的長度;capacity()返回總的容量;ensuareCapacity()設置容量不夠時追加的容量大??;reverse()字符串翻轉(zhuǎn)。例6-8:將給定的字符串翻轉(zhuǎn)(6-8.TXT)2、 StringBuffer類類v 例例6-7:將:將“Java programming!”中的子串中的子串“Java”替換成替換成“This is Turbo C”。(。(6-7.txt)class Replacepublic static void main(String args) StringB
23、uffer sb = new StringBuffer(Java programming!); sb.replace(0, 4, This is Turbo C);/第一個字符位置為第一個字符位置為0System.out.println(After replace: + sb.toString();/也可使用下面的方法也可使用下面的方法/sb=sb.replace(0, 4, This is Turbo C);/System.out.println(After replace: + sb);運行結(jié)果運行結(jié)果:This is Turbo C programming!2、 StringBuffer
24、類類v 例例6-8:將給定的字符串翻轉(zhuǎn)(:將給定的字符串翻轉(zhuǎn)(6-8.TXT)class Reversepublic static void main(String args) StringBuffer s = new StringBuffer(123456789); System.out.println(s);s.reverse();/調(diào)用方法,生成逆序即翻轉(zhuǎn)字符串調(diào)用方法,生成逆序即翻轉(zhuǎn)字符串 System.out.println(s);運行結(jié)果運行結(jié)果:987654321 二、字符串類二、字符串類 3、 StringTokenizer類類StringTokenizer(字符串令牌,字符串
25、標記)類主要用于對字符串(字符串令牌,字符串標記)類主要用于對字符串的分析,可的分析,可將一個字符串分解成數(shù)個單元將一個字符串分解成數(shù)個單元(Token令牌,每個單令牌,每個單元之間以分界符分隔)。元之間以分界符分隔)。StringTokenizer(String str)是構(gòu)造函數(shù)。是構(gòu)造函數(shù)。幾個常用方法:幾個常用方法:int countTokens(),返回令牌的數(shù)目;,返回令牌的數(shù)目;boolean hasMoreTokens()檢查是否還有令牌存在;檢查是否還有令牌存在;String nextToken()返回下一個令牌;返回下一個令牌;String nextToken(String
26、 delimit)根據(jù)指定的分界符(根據(jù)指定的分界符(delimit),),返回令牌。返回令牌。例6-9:將給定字符串每個單詞取出來。(6-9.txt)3、 StringTokenizer類類v 例例6-9:將給定字符串每個單詞取出來。:將給定字符串每個單詞取出來。(6-9.txt)class Token public static void main(String args) StringTokenizer st=new StringTokenizer(I am a Java newer);String tokens=new Stringst.countTokens();/聲明定義數(shù)組聲明定
27、義數(shù)組for(int i=0;st.hasMoreTokens();i+)/每個數(shù)組元素存放一個單詞每個數(shù)組元素存放一個單詞tokensi=st.nextToken();/取詞取詞System.out.println(tokensi);/打印打印運行結(jié)果運行結(jié)果:IamaJavanewer三、數(shù)組類和向量類三、數(shù)組類和向量類 三、數(shù)組類和向量類三、數(shù)組類和向量類 1、數(shù)組數(shù)組Arrays類類 數(shù)組是編程時最常用的數(shù)據(jù)結(jié)構(gòu)之一,數(shù)組可以包含任何數(shù)數(shù)組是編程時最常用的數(shù)據(jù)結(jié)構(gòu)之一,數(shù)組可以包含任何數(shù)據(jù)類型,一旦創(chuàng)建便只可存儲指定類型的數(shù)據(jù)。向量的功能更強據(jù)類型,一旦創(chuàng)建便只可存儲指定類型的數(shù)據(jù)。向
28、量的功能更強大,它是大,它是允許不同類型元素共存允許不同類型元素共存的變長數(shù)組。的變長數(shù)組。Array(數(shù)組)類提供了對數(shù)組運算的功能,如排序、搜索等操(數(shù)組)類提供了對數(shù)組運算的功能,如排序、搜索等操作。作。Array類的靜態(tài)方法:類的靜態(tài)方法:static void sort(dadaType d),對數(shù)組進行排序(升序),對數(shù)組進行排序(升序)例6-10:使用Array類對數(shù)組排序。(6-10.txt)1、數(shù)組數(shù)組Arrays類類v 例例6-10:使用:使用Array類對數(shù)組排序。類對數(shù)組排序。(6-10.txt)import java.util.Arrays;class ArraysC
29、lass public static void main(String args) int num=new int10;for(int i=0;i10;i+)/排序前:排序前:numi=(int)(Math.random()*10)+1; /產(chǎn)生產(chǎn)生110隨機數(shù)隨機數(shù)System.out.print(numi+ );/打印產(chǎn)生的隨機數(shù)打印產(chǎn)生的隨機數(shù)System.out.println(n排序后排序后);Arrays.sort(num);/排序排序for(int i=0;i10;i+)/排序后:排序后:System.out.print(numi+ );/打印排序后的數(shù)打印排序后的數(shù)System
30、.out.println();System.out.println(6的位置是:的位置是:+Arrays.binarySearch(num,6);/搜索搜索6的位置的位置運行結(jié)果運行結(jié)果:運行程序后產(chǎn)生一組隨機運行程序后產(chǎn)生一組隨機數(shù),并搜索數(shù),并搜索6的位置。由于的位置。由于數(shù)據(jù)是隨機產(chǎn)生,所以每數(shù)據(jù)是隨機產(chǎn)生,所以每次運行時數(shù)據(jù)都不同次運行時數(shù)據(jù)都不同 三、數(shù)組類和向量類三、數(shù)組類和向量類 2、向量類向量類VectorJava語言中,數(shù)組只能保存固定數(shù)目的元素,內(nèi)存空間的申請也語言中,數(shù)組只能保存固定數(shù)目的元素,內(nèi)存空間的申請也是一次完成,不能在創(chuàng)建后再追加數(shù)組元素。為此又引入了向量是一次
31、完成,不能在創(chuàng)建后再追加數(shù)組元素。為此又引入了向量類類Vector。向量也是一組對象的集合,但它可以向量也是一組對象的集合,但它可以追加對象元素的數(shù)量追加對象元素的數(shù)量,相當,相當于一個于一個變長數(shù)組變長數(shù)組。在這些場合中,使用在這些場合中,使用Vector比較方便比較方便:對象的數(shù)目不定;對象的數(shù)目不定;序列中的元素都是對象;序列中的元素都是對象;組合不同類的對象成一序列;組合不同類的對象成一序列;頻繁地插入或刪除序列中的對象。頻繁地插入或刪除序列中的對象。 三、數(shù)組類和向量類三、數(shù)組類和向量類(1)聲明并創(chuàng)建)聲明并創(chuàng)建Vector對象對象 Vector類的構(gòu)造函數(shù):類的構(gòu)造函數(shù): Vec
32、tor(); Vector(Collection c); Vector(int initialCapacity); Vector(int initialCapacity,int capacityIncrement);(2)幾個常用的方法)幾個常用的方法 1)向向量中增加一個元素(不是插入元素)向向量中增加一個元素(不是插入元素) add(int index,Object element); 2)批量增加元素)批量增加元素 addAll(Collection c); 3)獲取向量的容量空間(余量空間)獲取向量的容量空間(余量空間) int capacity(); 4)指定位置插入元素)指定位置插
33、入元素 insertElement(Object obj,int index);例6-11:向量類的應用。創(chuàng)建一個向量對象,將其他對象如字符串添加到向量中,然后為字符串排序。(6-11.txt)2、向量類向量類Vectorv 例例6-11:向量類的應用。創(chuàng)建一個向量對象,將其他對象如字符串:向量類的應用。創(chuàng)建一個向量對象,將其他對象如字符串添加到向量中,然后為字符串排序。添加到向量中,然后為字符串排序。(6-11.txt)import java.util.*;class VectorExm public static void main(String args) Vector vect=new
34、 Vector();/空向量對象空向量對象String str=ZS張三張三,LS李四李四,WW王五王五,ZL趙六趙六;for(int j=0;jstr.length;j+)vect.add(strj);/對象添加到向量中對象添加到向量中Collections.sort(vect);/對向量的對象排序?qū)ο蛄康膶ο笈判騠or(int j=0;j0)b=Integer.parseInt(args0);/命令行帶一個參數(shù)命令行帶一個參數(shù)if(b=0)System.out.println(應用程序正常結(jié)束應用程序正常結(jié)束);System.exit(b); else/異常退出異常退出System.out
35、.println(應用程序異常結(jié)束應用程序異常結(jié)束);System.exit(b);運行結(jié)果運行結(jié)果:運行:java ProgramExit 0或java ProgramExit 1結(jié)果是“程序正常退出”或“程序異常退出”2、Java語言核心類庫語言核心類庫v 例例6-14:數(shù)組復制:數(shù)組復制(6-14.txt)class ArrayCopy /聲明定義初始化數(shù)組聲明定義初始化數(shù)組static byte a = 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 ;static byte b = new bytea.length;/聲明定義數(shù)組,大小等于聲明定義數(shù)組,
36、大小等于a的長度的長度public static void main(String args) System.out.println(a = + new String(a);System.arraycopy(a, 0, b, 0, a.length);/調(diào)用復制數(shù)組的方法調(diào)用復制數(shù)組的方法System.out.println(b = + new String(b); 運行結(jié)果運行結(jié)果:a=ABCDEFGHIJb=ABCDEFGHIJ2、Java語言核心類庫語言核心類庫v 例例6-15:獲取計算機系統(tǒng)的相關(guān)信息例:獲取計算機系統(tǒng)的相關(guān)信息例(6-15txt) class DisplayPrope
37、rty public static void main(String args) /以下是調(diào)用上面的方法以下是調(diào)用上面的方法getProperty(),獲取相關(guān)的屬性,獲取相關(guān)的屬性System.out.println(System.getProperty(java.version);System.out.println(System.getProperty(file.separator);System.out.println(System.getProperty(java.vm.version);System.out.println(System.getProperty(os.version
38、);System.out.println(System.getProperty();System.out.println(System.getProperty(java.class.path);System.out.println(System.getProperty(java.vendor);2、Java語言核心類庫語言核心類庫v 例例6-16:設置系統(tǒng)的相關(guān)屬性:設置系統(tǒng)的相關(guān)屬性(6-16.txt) public class SetSP public static void main(String args) String strProperty = System.getP
39、roperty( java.io.tmpdir );System.out.println(原來的臨時文件存儲目錄名稱:原來的臨時文件存儲目錄名稱: + strProperty );System.out.println(將臨時文件目錄設置為將臨時文件目錄設置為C:/Tmp);String oldProperty = System.setProperty(java.io.tmpdir, C:/Tmp );strProperty = System.getProperty(java.io.tmpdir);System.out.println(設置后的臨時文件存儲目錄名稱:設置后的臨時文件存儲目錄名稱:
40、 + strProperty );運行結(jié)果運行結(jié)果:原來的臨時文件存儲目錄名稱:D:DOCUME1cyxLOCALS1Temp將臨時文件目錄設置為C:/Tmp設置后的臨時文件存儲目錄名稱:C:/Tmp 2、Java語言核心類庫語言核心類庫4. Runtime類類Runtime類封裝了運行時環(huán)境。例6-17:測試計算機的系統(tǒng)內(nèi)存,并執(zhí)行記事本程序。(6-17.txt)5. 基本數(shù)據(jù)類型(包裝)類基本數(shù)據(jù)類型(包裝)類數(shù)據(jù)類型類對應相應的基本數(shù)據(jù)類型,類名與數(shù)據(jù)類型的名字相似,但第一個字母需大寫。包裝類名包裝類名 數(shù)據(jù)類型數(shù)據(jù)類型Boolean booleanCharacter charDoubl
41、e doubleInteger intLong longFloat floatBytebyte(1)Integer類例例6.18:輸出整數(shù)的二、八、十六進制數(shù)表示。 (6-18.txt)(2)基本數(shù)據(jù)類型和字符串的相互轉(zhuǎn)換6. Math類類提供用于數(shù)學運算的標準函數(shù)及常數(shù),它們都是static型的,故在使用時直接用類名作前綴,不需要創(chuàng)建Math類的對象。2、Java語言核心類庫語言核心類庫v 例例6-17:測試計算機的系統(tǒng)內(nèi)存,并執(zhí)行記事本程序。:測試計算機的系統(tǒng)內(nèi)存,并執(zhí)行記事本程序。(6-17.txt)class GetMemorypublic static void main(Strin
42、g args) Runtime rt = Runtime.getRuntime(); long mem1, mem2;Integer someints = new Integer100;System.out.println(總內(nèi)存總內(nèi)存: +rt.totalMemory();/總內(nèi)存總內(nèi)存mem1 = rt.freeMemory(); /可用內(nèi)存可用內(nèi)存System.out.println(可用內(nèi)存可用內(nèi)存: + mem1);rt.gc(); /內(nèi)存回收內(nèi)存回收mem1 = rt.freeMemory();System.out.println(可用內(nèi)存可用內(nèi)存: + mem1); /可用內(nèi)存可
43、用內(nèi)存 for(int i=0; i100; i+)/占用內(nèi)存占用內(nèi)存someintsi = new Integer(i); mem2 = rt.freeMemory();System.out.println(可用內(nèi)存可用內(nèi)存: + mem2); /可用內(nèi)存可用內(nèi)存 System.out.println(使用的內(nèi)存使用的內(nèi)存: + (mem1-mem2); /用的內(nèi)存用的內(nèi)存 / discard Integers2、Java語言核心類庫語言核心類庫for(int i=0; i100; i+) someintsi = null;rt.gc(); /釋放內(nèi)存釋放內(nèi)存 mem2 = rt.freeM
44、emory();System.out.println(可用內(nèi)存可用內(nèi)存 : + mem2); /可用內(nèi)存可用內(nèi)存/調(diào)用記事本程序調(diào)用記事本程序rt.exec(notepad);System.out.println(Error executing notepad.);運行結(jié)果運行結(jié)果:2、Java語言核心類庫語言核心類庫v 例例6.18:輸出整數(shù)的二、八、十六進制數(shù)表示。:輸出整數(shù)的二、八、十六進制數(shù)表示。 (6-18.txt)public class IntegerChange public static void main(String args) String nm=new String(
45、445); int n=Integer.parseInt(nm); System.out.println(十進制表示:十進制表示:+n); System.out.println(二進制表示:二進制表示:+Integer.toBinaryString(n); System.out.println(八進制表示:八進制表示:+Integer.toOctalString(n); System.out.println(十六進制表示:十六進制表示:+Integer.toHexString(n); 運行結(jié)果運行結(jié)果:十進制表示:十進制表示:445二進制表示:二進制表示:110111101八進制表示:八進制表
46、示:675十六進制表示:十六進制表示:1bd四、四、 JavaJava語言基礎類庫語言基礎類庫 3、實用類庫、實用類庫java.util java 的的utility類庫是類庫是Java核心包的一部分,即核心包的一部分,即java.util包。該包。該包中有很多實用的類包中有很多實用的類1. 日期類日期類Date 日期類Date用來操作系統(tǒng)日期、時間,如天數(shù)計算、日期比較等。 例6-19:輸出時間和日期(6-19.txt)2. 日歷類日歷類Calendar Calendar類是抽象類,故不能用new創(chuàng)建對象,但可使用其getInstance()方法得到默認時區(qū)的一個對象。 例6-20:使用日歷
47、類顯示日期時間和設置日期時間。 (6-20.txt)3. 標準日歷時鐘類標準日歷時鐘類GregorianCalendar GregorianCalendar是一個標準的日歷類,其對象也就是Calendar類的getInstance()方法返回的用默認的地區(qū)、時區(qū)表示的當前日期和時間的對象。 例6-21:顯示當前的的日期和時間(6-21.txt)4. 隨機類隨機類Random Random類是偽隨機數(shù)產(chǎn)生類。使用相同的初始化值(又稱種子數(shù))生成一個Random類的對象時,可獲得相同的一組隨機數(shù)。使用不同的種子數(shù)則可產(chǎn)生不同的隨機數(shù)。3、實用類庫、實用類庫java.utilv 例例6-19:輸出時
48、間和日期:輸出時間和日期(6-19.txt)import java.util.Date;class CurrentDatepublic static void main(String args)Date now = new Date();/創(chuàng)建日期對象創(chuàng)建日期對象System.out.println(現(xiàn)在是:現(xiàn)在是:);/顯示當前日期和時間顯示當前日期和時間System.out.print(1900 + now.getYear()+年年);/取年取年System.out.print(now.getMonth()+月月);/月月System.out.print(now.getDay()+日日);
49、/日日System.out.print(now.getHours()+時時);/System.out.print(now.getMinutes()+分分);System.out.println(now.getSeconds()+秒秒);System.out.println(現(xiàn)在是:現(xiàn)在是:+now);/用用toString()方法顯示方法顯示long msec = now.getTime();/顯示毫秒數(shù),從顯示毫秒數(shù),從January 1, 1970 GMT System.out.println(從從Jan. 1, 1970 GMT到現(xiàn)在的毫秒數(shù)到現(xiàn)在的毫秒數(shù) = + msec);3、實用類
50、庫、實用類庫java.utilv 例例6-20:使用日歷類顯示日期時間和設置日期時間。:使用日歷類顯示日期時間和設置日期時間。 (6-20.txt)import java.util.Calendar;class ACalendarpublic static void main(String args) String months = /初始化數(shù)組初始化數(shù)組 Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec; Calendar aCalendar = Calendar.getInstance();/用默認時區(qū)得到對象用默認時區(qū)得
51、到對象 System.out.print(Date: );/ 顯示當前日期顯示當前日期 System.out.print(monthsaCalendar.get(Calendar.MONTH); /使用常數(shù)使用常數(shù) System.out.print( + aCalendar.get(Calendar.DATE) + ); System.out.println(aCalendar.get(Calendar.YEAR); System.out.print(Time: );/顯示和時間顯示和時間 System.out.print(aCalendar.get(Calendar.HOUR) + :);/
52、打印時間打印時間 System.out.print(aCalendar.get(Calendar.MINUTE) + :); System.out.println(aCalendar.get(Calendar.SECOND); aCalendar.set(Calendar.HOUR, 10); / 設置時間設置時間 aCalendar.set(Calendar.MINUTE, 29); aCalendar.set(Calendar.SECOND, 22);System.out.print(Updated time: );/顯示設置后的時間顯示設置后的時間 System.out.print(aC
53、alendar.get(Calendar.HOUR) + :);/打印時分秒打印時分秒 System.out.print(aCalendar.get(Calendar.MINUTE) + :); System.out.println(aCalendar.get(Calendar.SECOND); 3、實用類庫、實用類庫java.utilv 例例6-21:顯示當前的的日期和時間:顯示當前的的日期和時間(6-21.txt)import java.awt.*;import java.util.GregorianCalendar; public class Gregorian extends Fram
54、e public static void main(String args) Gregorian gr = new Gregorian();/ 創(chuàng)建框架對象創(chuàng)建框架對象TextArea ta = new TextArea();/ 文本區(qū)域?qū)ο笪谋緟^(qū)域?qū)ο驡regorianCalendar gc = new GregorianCalendar();/ 日歷時鐘日歷時鐘ta.append(Year: + gc.get(GregorianCalendar.YEAR) + n);/ 年年ta.append(Month: + gc.get(GregorianCalendar.MONTH) + n);/
55、月月ta.append(Day: + gc.get(GregorianCalendar.DATE) + n);/ 日日ta.append(Hour: + gc.get(GregorianCalendar.HOUR) + n);/ 時時ta.append(Minute: + gc.get(GregorianCalendar.MINUTE) + n);/ 分分ta.append(Second: + gc.get(GregorianCalendar.SECOND) + n);/ 秒秒gr.add(ta, BorderLayout.CENTER);/ 文本區(qū)域加入到框架中心,用邊界布局文本區(qū)域加入到框
56、架中心,用邊界布局gr.setSize(300, 200);gr.setVisible(true);運行結(jié)果運行結(jié)果:五、五、 實例學習實例學習五、五、 實例學習實例學習v 實例學習實例學習1:找出距離最近的點對:找出距離最近的點對假設有一個集合的點,找出最接近的點對問題就是找到兩個點,它們到彼此的距離最近。例如:在圖6-5中,點(1,1)和(2,0.5)是彼此之間距離最近的一對點。解決這個問題的方法有好幾種。一種直觀的方法就是計算所有點對之間的距離,并且找出最短的距離。(6-實例學習實例學習-1.txt)6-實例學習實例學習-1.txtimport java.util.Scanner; pu
57、blic class FindNearestPoints public static void main(String args) Scanner input = new Scanner(System.in);System.out.print(Enter the number of points: );int numberOfPoints = input.nextInt(); / Create an array to store pointsdouble points = new doublenumberOfPoints2;System.out.print(Enter + numberOfPo
58、ints + points: );for (int i = 0; i points.length; i+) pointsi0 = input.nextDouble();pointsi1 = input.nextDouble(); / p1 and p2 are the indices in the points arrayint p1 = 0, p2 = 1; / Initial two pointsdouble shortestDistance = distance(pointsp10, pointsp11,pointsp20, pointsp21); / Initialize shorte
59、stDistance 演示示例:演示示例:找出距離最近的點對找出距離最近的點對6-實例學習實例學習-1.txt/ Compute distance for every two pointsfor (int i = 0; i points.length; i+) for (int j = i + 1; j distance) p1 = i; / Update p1p2 = j; / Update p2shortestDistance = distance; / Update shortestDistance / Display resultSystem.out.println(The close
60、st two points are + ( + pointsp10+ , + pointsp11 + ) and ( + pointsp20 + , + pointsp21 + ); /* Compute the distance between two points (x1, y1) and (x2, y2) */ public static double distance(double x1, double y1, double x2, double y2) return Math.sqrt(x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);6-實例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024咨詢服務合同范本標準范文
- 廣東省珠海市七年級上學期語文期中試卷7套【附答案】
- 2024藥品代理合同范本
- 單位團購房產(chǎn)轉(zhuǎn)讓合同范本
- 企業(yè)財產(chǎn)出售協(xié)議樣式
- 2024年農(nóng)村房屋轉(zhuǎn)讓協(xié)議范本
- 七年級地理上冊5.1《世界的人口》教案粵教版
- 2024版標準家庭裝修協(xié)議
- 建筑外墻保溫工程施工合同
- 個人借款合同協(xié)議書格式示例
- JC-T 2536-2019水泥-水玻璃灌漿材料
- 品牌授權(quán)協(xié)議書
- 藝術(shù)設計就業(yè)職業(yè)生涯規(guī)劃
- 《狙擊手》和《新神榜楊戩》電影賞析
- 槍庫應急處置預案
- 老年患者術(shù)后譫妄的護理干預
- 《凸透鏡成像的規(guī)律》課件
- 倉庫管理中的客戶服務和溝通技巧
- 規(guī)劃選址及用地預審
- 土砂石料廠項目融資計劃書
- 2024年給藥錯誤護理不良事件分析持續(xù)改進
評論
0/150
提交評論