標籤:
Java語言套件(java.lang)定義了Java中的大多數基本類,由Java語言自動調用,不需要顯示聲明。該包中包含了Object類,Object類是整個類階層的根結點,同時還定義了基礎資料型別 (Elementary Data Type)的類,如:String、Boolean、Byter、Short等。這些類支援數字類型的轉換和字串的操作等,下面將進行簡單介紹。
Math類
Math類提供了常用的數學運算方法以及Math.PI和Math.E兩個數學常量。該類是final的,不能被繼承,類中的方法和屬性全部是靜態,不允許在類的外部建立Math類的對象。因此,只能使用Math類的方法而不能對其作任何更改。表8-1列出了Math類的主要方法。
表8-1 Math類的主要方法
| 方法 |
功能 |
| int abs(int i) |
求整數的絕對值(另有針對long、float、double的方法) |
| double ceil(double d) |
不小於d的最小整數(傳回值為double型) |
| double floor(double d) |
不大於d的最大整數(傳回值為double型) |
| int max(int i1,int i2) |
求兩個整數中最大數(另有針對long、float、double的方法) |
| int min(int i1,int i2) |
求兩個整數中最小數(另有針對long、float、double的方法) |
| double random() |
產生0~1之間的隨機數 |
| int round(float f) |
求最靠近f的整數 |
| long round(double d) |
求最靠近d的長整數 |
| double sqrt(double a) |
求平方根 |
| double sin(double d) |
求d的sin值(另有求其他三角函數的方法如cos,tan,atan) |
| double log(double x) |
求自然對數 |
| double exp(double x) |
求e的x次冪(ex) |
| double pow(double a, double b) |
求a的b次冪 |
1 【例8-2】產生10個10~100之間的隨機整數。 2 //********** ep8_2.java ********** 3 class ep8_2{ 4 public static void main(String args[]){ 5 int a; 6 System.out.print("隨機數為:"); 7 for(int i=1;i<=10;i++){ 8 a=(int)((100-10+1)*Math.random()+10); 9 System.out.print(" "+a);10 }11 System.out.println();12 }13 }
運行結果: 隨機數為:12 26 21 68 56 98 22 69 68 31
由於產生的是隨機數,例8-2每次啟動並執行結果都不會相同。若要產生[a,b]之間的隨機數其通式為:
(b-a+1)*Math.random()+a
字串類
字串是字元的序列。在 Java 中,字串無論是常量還是變數都是用類的對象來實現的。java.lang 提供了兩種字串類:String 類和 StringBuffer 類。
1.String 類
按照 Java 語言的規定,String 類是 immutable 的 Unicode 字元序列,其作用是實現一種不能改變的靜態字串。例如,把兩個字串串連起來的結果是產生一個新的字串,而不會使原來的字串改變。實際上,所有改變字串的結果都是產生新的字串,而不是改變原來字串。
字串與數組的實現很相似,也是通過 index 編號來指出字元在字串中的位置的,編號從0 開始,第 2 個字元的編號為 1,以此類推。如果要訪問的編號不在合法的範圍內,系統會產生 StringIndexOutOfBoundsExecption 異常。如果 index 的值不是整數,則會產生編譯錯誤。
String 類提供了如表 8-2 所示的幾種字串建立方法。
表 8-2 String 建立字串的方法
| 方法 |
功能 |
| String s=”Hello!” |
用字串常量自動建立 String 執行個體。 |
| String s=new String(String s) |
通過 String 對象或字串常量傳遞給構造方法。 |
| public String(char value[]) |
將整個字元數組賦給 String 構造方法。 |
| public String(char value[], int offset, int count) |
將字元數組的一部分賦給 String 構造方法,offset 為起始下標,count為子數組長度。 |
2.StringBuffer 類
String 類不能改變字串對象中的內容,只能通過建立一個新串來實現字串的變化。如果字串需要動態改變,就需要用 StringBuffer 類。StringBuffer 類主要用來實現字串內容的添加、修改、刪除,也就是說該類對象實體的記憶體空間可以自動改變大小,以便於存放一個可變的字元序列。
StringBuffer 類提供的三種構造方法
| 構造方法 |
說明 |
| StringBuffer() |
使用該無參數的構造方法建立的 StringBuffer 對象,初始容量為 16 個字元,當對象存放的字元序列大於 16 個字元時,對象的容量自動增加。該對象可以通過 length()方法擷取實體中存放的字元序列的長度,通過 capacity()方法擷取當前對象的實際容量。 |
| StringBuffer(int length) |
使用該構造方法建立的 StringBuffer 對象,其初始容量為參數 length 指定的字元個數,當對象存放的字元序列的長度大於 length 時,對象的容量自動增加,以便存放所增加的字元。 |
| StringBuffer(Strin str) |
使用該構造方法建立的 StringBuffer 對象,其初始容量為參數字串 str 的長度再加上 16 個字元。 |
幾種 StringBuffer 類常用的方法
| 方法 |
說明 |
| append() |
使用 append() 方法可以將其他 Java 類型資料轉化為字串後再追加到 StringBuffer 的對象中。 |
| insert(int index, String str) |
insert() 方法將一個字串插入對象的字元序列中的某個位置。 |
| setCharAt(int n, char ch) |
將當前 StringBuffer 對象中的字元序列 n 處的字元用參數 ch 指定的字元替換,n 的值必須是非負的,並且小於當前對象中字串序列的長度。 |
| reverse() |
使用 reverse()方法可以將對象中的字元序列翻轉。 |
| delete(int n, int m) |
從當前 StringBuffer 對象中的字元序列刪除一個子字元序列。這裡的 n 指定了需要刪除的第一個字元的下標,m 指定了需要刪除的最後一個字元的下一個字元的下標,因此刪除的子字串從 n~m-1。 |
| replace(int n, int m, String str) |
用 str 替換對象中的字元序列,被替換的子字元序列由下標 n 和 m 指定。 |
系列文章:Java知多少(上)Java知多少(39)interface介面Java知多少(40)介面和抽象類別的區別Java知多少(41)泛型詳解Java知多少(42)泛型萬用字元和型別參數的範圍Java知多少(43)異常處理基礎Java知多少(44)異常類型Java知多少(45)未被捕獲的異常Java知多少(46)try和catch的使用Java知多少(47)多重catch語句的使用Java知多少(48)try語句的嵌套Java知多少(49)throw:異常的拋出Java知多少(50)Java throws子句Java知多少(51)finallyJava知多少(52)內建異常Java知多少(53)使用Java建立自己的異常子類Java知多少(54)斷言詳解Java知多少(55)線程Java知多少(56)執行緒模式Java知多少(57)主線程Java知多少(58)線程Runnable介面和Thread類詳解Java知多少(59)建立多線程Java知多少(60)isAlive()和join()的使用Java知多少(61)線程優先順序Java知多少(62)線程同步Java知多少(63)線程間通訊Java知多少(64)線程死結Java知多少(65)線程的掛起、恢複和終止Java知多少(66)輸入輸出(IO)和流的概述Java知多少(67)面向字元的輸入資料流Java知多少(68)面向字元的輸出資料流Java知多少(69)面向位元組的輸入輸出資料流Java知多少(70)面向位元組流的應用Java知多少(71)檔案與目錄管理Java知多少(72)檔案的隨機讀寫Java知多少(73)檔案的壓縮處理Java知多少(74)基礎類庫Java知多少(75)Object類
Java知多少(76)語言套件(java.lang)簡介