在本教程中,我們將借助示例來學(xué)習(xí)Java 類型轉(zhuǎn)換及其類型。
在學(xué)習(xí)Java類型轉(zhuǎn)換之前,請確保您了解Java數(shù)據(jù)類型。
將一種數(shù)據(jù)類型(int,float,double等)的值轉(zhuǎn)換為另一種數(shù)據(jù)類型的過程稱為類型轉(zhuǎn)換。
在Java中,有13種類型轉(zhuǎn)換。但是,在本教程中,我們將只關(guān)注主要的兩種類型。
1、自動類型轉(zhuǎn)換
2、窄化轉(zhuǎn)換
在自動類型轉(zhuǎn)換中,Java自動將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。
class Main { public static void main(String[] args) { //創(chuàng)建int類型變量 int num = 10; System.out.println("整數(shù)值: " + num); //轉(zhuǎn)換為雙精度型 double data = num; System.out.println("雙精度值: " + data); } }
輸出結(jié)果
整數(shù)值: 10 雙精度值: 10.0
在上面的示例中,我們將名為num的int類型變量分配給名為data的雙精度類型變量。
在這里,Java首先將int類型數(shù)據(jù)轉(zhuǎn)換為double類型。然后將其分配給double變量。
在自動類型轉(zhuǎn)換的情況下,較低的數(shù)據(jù)類型(具有較小的大?。⑥D(zhuǎn)換為較高的數(shù)據(jù)類型(具有較大的大?。?。因此,沒有數(shù)據(jù)丟失。這就是為什么這種類型的轉(zhuǎn)換會自動發(fā)生的原因。
注意:這也稱為隱式類型轉(zhuǎn)換。
在強(qiáng)制類型轉(zhuǎn)換中,我們使用括號將一種數(shù)據(jù)類型手動轉(zhuǎn)換為另一種數(shù)據(jù)類型。
class Main { public static void main(String[] args) { //創(chuàng)建雙精度型變量 double num = 10.99; System.out.println("double 值: " + num); //轉(zhuǎn)換為int類型 int data = (int)num; System.out.println("integer 值: " + data); } }
輸出結(jié)果
double 值: 10.99 integer 值: 10
在上面的示例中,我們將名為num的double變量分配給名為data的int型變量。
注意這一行,
int data = (int)num;
在這里,括號中的int關(guān)鍵字表示num變量被轉(zhuǎn)換為int類型。
在強(qiáng)制類型轉(zhuǎn)換的情況下,較高的數(shù)據(jù)類型(具有較大的大小)將轉(zhuǎn)換為較低的數(shù)據(jù)類型(具有較小的大?。R虼?,存在數(shù)據(jù)丟失。這就是為什么這種類型的轉(zhuǎn)換不會自動發(fā)生的原因。
注意:這也稱為顯式類型轉(zhuǎn)換。
讓我們看一下Java中其他類型轉(zhuǎn)換的一些示例。
class Main { public static void main(String[] args) { // 創(chuàng)建int類型變量 int num = 10; System.out.println("整數(shù)值為: " + num); //將int轉(zhuǎn)換為字符串類型 String data = String.valueOf(num); System.out.println("字符串值為: " + data); } }
輸出結(jié)果
整數(shù)值為: 10 字符串值為: 10
在上面的程序中,注意該行
String data = String.valueOf(num);
在這里,我們使用了Java String類的valueOf()方法將int類型變量轉(zhuǎn)換為字符串。
class Main { public static void main(String[] args) { //創(chuàng)建字符串類型變量 String data = "10"; System.out.println("字符串值為: " + data); //轉(zhuǎn)換字符串變量為int int num = Integer.parseInt(data); System.out.println("整數(shù)值為: " + num); } }
輸出結(jié)果
字符串值為: 10 整數(shù)值為: 10
在上面的示例中,請注意以下行
int num = Integer.parseInt(data);
在這里,我們使用了Java Integer類的parseInt()方法將字符串類型變量轉(zhuǎn)換為int變量。
注意:如果無法將字符串變量轉(zhuǎn)換為整數(shù)變量,則會拋出異常 NumberFormatException。