Java Number類
通常,當要在Java編程中使用數字時,可以使用原始資料型別,如:byte,int,long,double等,
示例 int i = 5000; float gpa = 13.65; double mask = 0xaf;
但是,在開發程序中,我們遇到的是需要使用物件而不是原始資料型別的情況,要實作這一點,可使用Java提供的包裝類,
所有包裝類(如:Integer,Long,Byte,Double,Float,Short)都是抽象類Number的子類,

包裝類的物件包含或包裝其各自的基本資料型別,將原始資料型別轉換為物件稱為裝箱,編譯器會對此進行處理, 因此,在使用包裝器類時,只需將原始資料型別的值傳遞給包裝類的建構式就可以對它進行對應的操作,
并且包裝物件將轉換回原始資料型別,并且此程序稱為拆箱, Number類是java.lang包的一部分,
以下是裝箱和拆箱的示例 -
public class Test { public static void main(String args[]) { Integer x = 5; // 裝箱:將 int 添加到 Integer 物件 x = x + 1000; // 拆箱:將Integer 物件轉為 int System.out.println(x); } }
執行上面示例代碼,得到以下結果:
1005
當x賦予整數值時,編譯器將整數裝箱,因為x是整數物件, 之后,x又被拆箱,以便它們可以作為整數執行加法運算,
Number類的方法
以下是Number類的所有子類實作方法的串列 -
| 編號 | 方法 | 描述 |
|---|---|---|
| 1 | xxxValue()方法 | 將此Number物件的值轉換為xxx資料型別并回傳它, |
| 2 | compareTo()方法 | 將此Number物件與引數進行比較, |
| 3 | equals()方法 | 確定此Number物件是否等于引數, |
| 4 | valueOf()方法 | 回傳包含指定原始值的Integer物件, |
| 5 | toString()方法 | 回傳表示指定int或Integer值的String物件, |
| 6 | parseInt()方法 | 回傳某個String的原始資料型別值, |
| 7 | abs()方法 | 回傳引數的絕對值, |
| 8 | ceil()方法 | 回傳大于或等于引數的最小整數,結果整數為double型別, |
| 9 | floor()方法 | 回傳小于或等于引數的最大整數,結果整數為double型別, |
| 10 | rint()方法 | 回傳與引數值最接近的整數,結果整數為double型別, |
| 11 | round()方法 | 回傳最接近long或int值,由方法回傳型別指示引數的回傳型別, |
| 12 | min()方法 | 回傳兩個引數中最小的那一個, |
| 13 | max()方法 | 回傳兩個引數中最大的那一個, |
| 14 | exp()方法 | 回傳 e 的 x 次冪,e 代表自然對數的底數,其值近似為 2.71828, |
| 15 | log()方法 | 回傳引數的自然對數, |
| 16 | pow()方法 | 回傳第一個引數的第二個引數的指數冪(乘方)值, |
| 17 | sqrt()方法 | 回傳引數的平方根, |
| 18 | sin()方法 | 回傳指定double值的正弦值, |
| 19 | cos()方法 | 回傳指定double值的余弦值, |
| 20 | tan()方法 | 回傳指定double值的正切值, |
| 21 | asin()方法 | 回傳指定double值的反正弦值, |
| 22 | acos()方法 | 回傳指定double值的反余弦值, |
| 23 | atan()方法 | 回傳指定double值的反正切值, |
| 24 | atan2()方法 | 將直角坐標(x,y)轉換為極坐標(r,theta)并回傳theta, |
| 25 | toDegrees()方法 | 將引數轉換為度數, |
| 26 | toRadians()方法 | 將引數轉換為弧度, |
| 27 | random()方法 | 回傳一個亂數, |
Java Character類
通常,當處理字符時,使用原始資料型別char,
示例 char ch = 'a'; // Unicode的大寫字符 char uniChar = '\u039A'; // 字符陣列 char[] charArray ={ 'a', 'b', 'c', 'd', 'e' };
但是在開發程序中,經常遇到的是需要使用物件而不是原始資料型別的情況, 為了實作這一點,Java為原始資料型別char提供了包裝類Character,
Character類提供了許多用于操作字符的有用類(即靜態)方法, 可以使用Character建構式創建Character物件,例如 -
Character ch = new Character('a');
在某些情況下,Java編譯器還會創建一個Character物件, 例如,如果將原始字符傳遞給需要物件的方法,則編譯器會自動將char轉換為Character,此功能稱為自動裝箱或拆箱,
示例 // 這里是原始的char型別值:'a' // 它被裝入`Character`物件ch Character ch = 'a'; // 這里原始char值'x',裝箱用于方法test, // 拆箱到char型別值:'c' char c = test('x');
1. 轉義序列
以反斜杠(\)開頭的字符是轉義序列,對編譯器具有特殊含義,
在本教程中System.out.println()陳述句中經常使用換行符(\n),以便在列印字串后前進到下一行,
下表中列出了Java轉義序列 -
| 編號 | 轉義序列 | 描述 |
|---|---|---|
| 1 | \t |
表示在文本中插入一個制表符, |
| 2 | \b |
表示在文本中插入退格符, |
| 3 | \n |
表示在文本中插入換行符, |
| 4 | \r |
表示在文本中插入回車符, |
| 5 | \f |
表示在文本中插入換頁符, |
| 6 | \ ' |
表示在文本中插入單引號字符, |
| 7 | \" |
表示在文本中插入雙引號字符, |
| 8 | \\ |
表示在文本中插入反斜杠字符, |
當在print陳述句中遇到轉義序列時,編譯器會相應地解釋它,
示例
如果要在引號內加引號,則必須在內部引號上使用轉義序列\" -
public class Test { public static void main(String args[]) { System.out.println("She said \"Hello!\" to me."); } }
執行上面示例代碼,得到以下結果:
She said "Hello!" to me.
Character方法
以下是Character類的所有子類實作的方法串列 -
| 編號 | 方法 | 描述 |
|---|---|---|
| 1 | isLetter()方法 | 確定指定的char值是否為字母, |
| 2 | isDigit()方法 | 確定指定的char值是否為數字, |
| 3 | isWhitespace()方法 | 確定指定的char值是否為空格, |
| 4 | isUpperCase()方法 | 確定指定的char值是否為大寫字母, |
| 5 | isLowerCase()方法 | 確定指定的char值是否為小寫字母, |
| 6 | toUpperCase()方法 | 回傳指定char值的大寫形式, |
| 7 | toLowerCase()方法 | 回傳指定char值的小寫形式, |
| 8 | toString()方法 | 回傳表示指定字符值的String物件,即一個字符的字串, |
有關方法的完整串列,請參閱java.lang.Character API規范,
Java String類
字串在Java編程中廣泛使用,字串就是一系列字符(由一個個的字符組成), 在Java編程語言中,字串被視為物件,
Java平臺提供String類來創建和操作字串,
1. 創建字串
創建字串的最直接方法是 -
String str = "Hello world!";
每當它在代碼中遇到字串文字時,編譯器就會創建一個String物件,在本例中str物件的值為Hello world!,
與其他物件一樣,可以使用new關鍵字和建構式來創建String物件,String類有11個建構式,方便使用不同的源(例如:字符陣列)提供字串的初始值,
示例
public class StringDemo { public static void main(String args[]) { char[] helloArray = { 'Y', 'i', 'i', 'b', 'a', 'i' }; String helloString = new String(helloArray); System.out.println( helloString ); } }
執行上面示例代碼,得到下結果:
Yiibai
注 -
String類是不可變的,因此一旦創建,就無法更改String物件, 如果想要對字串進行大量修改,則應使用StringBuffer和StringBuilder,
2. 字串長度
用于獲取物件資訊的方法稱為訪問器方法, 可以與字串一起使用來獲取字串長度的一個訪問器方法是length()方法,它回傳字串物件中包含的字符數,
以下程式是String類的length()方法的示例,
public class StringDemo { public static void main(String args[]) { String greeting = "Hi,Welcome to Yiibai.com"; int len = greeting.length(); System.out.println( greeting+" 字串的長度是: " + len ); } }
執行上面示例代碼,得到下結果:
Hi,Welcome to Yiibai.com 字串的長度是: 24
3. 連接字串
String類包含一個用于連接兩個字串的方法 -
string1.concat(string2);
這將回傳一個新字串:string1,并且string1在結尾處添加了string2, 還可以將concat()方法與字串文字一起使用,例如 -
"My name is ".concat("Maxsu");
字串通常使用+運算子連接,如 -
"Hello," + " world" + "!"
上面代碼執行后得到的結果是:
"Hello, world!"
下面再來看另一個例子 -
public class StringDemo { public static void main(String args[]) { String string1 = "Bai"; System.out.println("Yii" + string1 + ".com"); } }
上面代碼執行后得到的結果是:
YiiBai.com
3. 創建格式化字串
Java中使用printf()和format()方法來列印帶有格式化數字的輸出, String類有一個等效的類方法format(),它回傳一個String物件而不是一個PrintStream物件,
使用String的static format()方法可以創建重用的格式化字串,而不是一次性列印陳述句, 例如 -
System.out.printf("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);
上面列印陳述句可使用格式化寫為:
String fs; fs = String.format("The value of the float variable is " + "%f, while the value of the integer " + "variable is %d, and the string " + "is %s", floatVar, intVar, stringVar); System.out.println(fs);
4. String類方法
以下是String類定義的方法串列 -
| 編號 | 方法 | 描述 |
|---|---|---|
| 1 | char charAt(int index) | 回傳指定索引處的字符, |
| 2 | int compareTo(Object o) | 將此String物件與另一個物件進行比較, |
| 3 | int compareTo(String anotherString) | 按字典順序比較兩個字串, |
| 4 | int compareToIgnoreCase(String str) | 按字典順序比較兩個字串,但不區分大小寫, |
| 5 | String concat(String str) | 將指定的字串連接到此字串的末尾, |
| 6 | boolean contentEquals(StringBuffer sb) | 當且僅當此String表示的字串與指定的StringBuffer相同的字符序列時,才回傳true, |
| 7 | static String copyValueOf(char[] data) | 回傳表示指定陣列中字符序列的String物件形式, |
| 8 | static String copyValueOf(char[] data, int offset, int count) | 回傳表示指定陣列中字符序列的String物件形式, |
| 9 | boolean endsWith(String suffix) | 判斷此字串是否以指定的字符作為后綴結尾, |
| 10 | boolean equals(Object anObject) | 將此字串與指定的物件進行比較, |
| 11 | boolean equalsIgnoreCase(String anotherString) | 將此String與另一個String進行比較,忽略大小寫, |
| 12 | byte getBytes() | 使用平臺的默認字符集將此String編碼為位元組序列,將結果存盤到新的位元組陣列中, |
| 13 | byte[] getBytes(String charsetName) | 使用指定的字符集將此String編碼為位元組序列,將結果存盤到新的位元組陣列中, |
| 14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) | 將此字串中的字符復制到目標字符陣列中, |
| 15 | int hashCode() | 回傳此字串的哈希碼, |
| 16 | int indexOf(int ch) | 回傳指定字符在此字串中第一次出現的索引, |
| 17 | int indexOf(int ch, int fromIndex) | 回傳指定字符在此字串中第一次出現的索引,它從指定索引處開始搜索, |
| 18 | int indexOf(String str) | 回傳指定子字串在此字串中第一次出現的索引, |
| 19 | int indexOf(String str, int fromIndex) | 從指定的索引處開始,回傳指定子字串在此字串中第一次出現的索引, |
| 20 | String intern() | 回傳字串物件的規范表示, |
| 21 | int lastIndexOf(int ch) | 回傳指定字符在此字串中最后一次出現的索引, |
| 22 | int lastIndexOf(int ch, int fromIndex) | 回傳指定字符在此字串中最后一次出現的索引,它從指定的索引開始向后搜索, |
| 23 | int lastIndexOf(String str) | 回傳指定子字串在些字串中最后出現的索引, |
| 24 | int lastIndexOf(String str, int fromIndex) | 回傳指定子字串在此字串中最后一次出現的索引,它從指定索引開始向后搜索, |
| 25 | int length() | 回傳此字串的長度, |
| 26 | boolean matches(String regex) | 判斷此字串是否與給定的正則運算式匹配, |
| 27 | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) | 判斷兩個字串區域是否相等, |
| 28 | boolean regionMatches(int toffset, String other, int ooffset, int len) | 判斷兩個字串區域是否相等, |
| 29 | String replace(char oldChar, char newChar) | 回傳一個新字串,該字串是使用newChar替換此字串中出現的所有oldChar后的字串, |
| 30 | String replaceAll(String regex, String replacement) | 將替換此字串中匹配給定正則運算式的每個子字串, |
| 31 | String replaceFirst(String regex, String replacement) | 將替換此字串中第一個匹配給定正則運算式的子字串, |
| 32 | String[] split(String regex) | 將此字串拆分為給定正則運算式的匹配項, |
| 33 | String[] split(String regex, int limit) | 將此字串拆分為給定正則運算式的匹配項, |
| 34 | boolean startsWith(String prefix) | 判斷此字串是否以指定的字串前綴開頭, |
| 35 | boolean startsWith(String prefix, int toffset) | 判斷此字串在指定的索引是否以指定的前綴開始, |
| 36 | CharSequence subSequence(int beginIndex, int endIndex) | 回傳一個新的字符序列,它是該序列的子序列, |
| 37 | String substring(int beginIndex) | 回傳一個新字串,該字串是此字串的子字串, |
| 38 | String substring(int beginIndex, int endIndex) | 回傳一個新字串,該字串是此字串的子字串, |
| 39 | char[] toCharArray() | 將此字串轉換為新的字符陣列, |
| 40 | String toLowerCase() | 使用默認語言環境的規則將此String中的所有字符轉換為小寫, |
| 41 | String toLowerCase(Locale locale) | 使用給定Locale的規則將此String中的所有字符轉換為小寫, |
| 42 | String toString() | 將這個物件(已經是一個字串)本身回傳, |
| 43 | String toUpperCase() | 使用默認語言環境的規則將此String中的所有字符轉換為大寫, |
| 44 | String toUpperCase(Locale locale) | 使用給定Locale的規則將此String中的所有字符轉換為大寫, |
| 45 | String trim() | 回傳字串的副本,移除前導和尾隨空格, |
| 46 | static String valueOf(primitive data type x) | 回傳傳遞的資料型別引數的字串表示形式, |
有完整的Java初級,高級對應的學習路線和資料!專注于java開發,分享java基礎、原理性知識、JavaWeb實戰、spring全家桶、設計模式、分布式及面試資料、開源專案,助力開發者成長!
歡迎關注微信公眾號:碼邦主
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/230141.html
標籤:Java
下一篇:Eclipse控制臺亂碼解決方法
