Java語言包(java.lang)簡介
<上一節
下一節>
Java語言包(java.lang)定義了Java中的大多數基本類,由Java語言自動調用,不需要顯示聲明。該包中包含了Object類,Object類是整個類層次結構的根結點,同時還定義了基本數據類型的類,如:String、Boolean、Byter、Short等。這些類支持數字類型的轉換和字符串的操作等,下面將進行簡單介紹。
【例8-2】產生10個10~100之間的隨機整數。
//********** ep8_2.java **********
class ep8_2{
public static void main(String args[]){
int a;
System.out.print("隨機數為:");
for(int i=1;i<=10;i++){
a=(int)((100-10+1)*Math.random()+10);
System.out.print(" "+a);
}
System.out.println();
}
}
運行結果: 隨機數為:12 26 21 68 56 98 22 69 68 31
由于產生的是隨機數,例8-2每次運行的結果都不會相同。若要產生[a,b]之間的隨機數其通式為:
(b-a+1)*Math.random()+a
1.String 類
按照 Java 語言的規定,String 類是 immutable 的 Unicode 字符序列,其作用是實現一種不能改變的靜態字符串。例如,把兩個字符串連接起來的結果是生成一個新的字符串,而不會使原來的字符串改變。實際上,所有改變字符串的結果都是生成新的字符串,而不是改變原來字符串。
字符串與數組的實現很相似,也是通過 index 編號來指出字符在字符串中的位置的,編號從0 開始,第 2 個字符的編號為 1,以此類推。如果要訪問的編號不在合法的范圍內,系統會產生 StringIndexOutOfBoundsExecption 異常。如果 index 的值不是整數,則會產生編譯錯誤。
String 類提供了如表 8-2 所示的幾種字符串創建方法。
2.StringBuffer 類
String 類不能改變字符串對象中的內容,只能通過建立一個新串來實現字符串的變化。如果字符串需要動態改變,就需要用 StringBuffer 類。StringBuffer 類主要用來實現字符串內容的添加、修改、刪除,也就是說該類對象實體的內存空間可以自動改變大小,以便于存放一個可變的字符序列。
Math類
Math類提供了常用的數學運算方法以及Math.PI和Math.E兩個數學常量。該類是final的,不能被繼承,類中的方法和屬性全部是靜態,不允許在類的外部創建Math類的對象。因此,只能使用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次冪 |
【例8-2】產生10個10~100之間的隨機整數。
//********** ep8_2.java **********
class ep8_2{
public static void main(String args[]){
int a;
System.out.print("隨機數為:");
for(int i=1;i<=10;i++){
a=(int)((100-10+1)*Math.random()+10);
System.out.print(" "+a);
}
System.out.println();
}
}
運行結果: 隨機數為: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 所示的幾種字符串創建方法。
方法 | 功能 |
---|---|
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 對象,初始容量為 16 個字符,當對象存放的字符序列大于 16 個字符時,對象的容量自動增加。該對象可以通過 length()方法獲取實體中存放的字符序列的長度,通過 capacity()方法獲取當前對象的實際容量。 |
StringBuffer(int length) | 使用該構造方法創建的 StringBuffer 對象,其初始容量為參數 length 指定的字符個數,當對象存放的字符序列的長度大于 length 時,對象的容量自動增加,以便存放所增加的字符。 |
StringBuffer(Strin str) | 使用該構造方法創建的 StringBuffer 對象,其初始容量為參數字符串 str 的長度再加上 16 個字符。 |
方法 | 說明 |
---|---|
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 指定。 |
<上一節
下一節>