java的類類型轉換
❶ java中的類型轉換是什麼
int a=Integer.parseInt("123"); 字元串轉成整形
Integer.toString(int par1,int par2),par1表示要轉成字元串的數字,par2表示要轉成的進製表示,如:
Integer.toString(22,2),表示把22轉成2進製表示的字元串,
Integer.toString(22,10),表示把22轉成10進製表示的字元串,
Integer.toString(22,16),表示把22轉成16進製表示的字元串,
Integer.toString(22,36),表示把22轉成36進製表示的字元串,即10到36之間的數字表示為a到z的表示。
❷ java數據類型轉換方式有幾種
如:String s = "123";
int num = Integer.parseInt(s);注意:當應用程序試圖將字元串轉換成一種數值類型,但該字元串不能轉換為適當格式時,會拋出異常java.lang.NumberFormatException
2、String類型轉換成double類型變數:使用double類的parseDouble(String )方法
如:String s = "123";
idouble num = Double.parseDouble(s);
3、int類型變數轉換成String類型變數:使用String類的valueOf(int )方法
如: int num = 123;
String s = String.valueOf(num);
4、Double類型變數轉換成String類型變數:使用String類的valueOf(int )方法
如: Double num = 123.0;
String s = String.valueOf(num);
5、String變數轉換成字元數組Char[]:使用String類的toCharArray()方法
如: String s = "123";
6、字元或字元數組轉換成字元串,也是通過valueOf()方法,不再給出示例代碼。
❸ java 類型轉換
if(null != n ){} 就行了。
n都為null 也,你還讓它n.toString?肯定報錯.
在java項目的實際開發和應用中,常常需要用到將對象轉為String這一基本功能。
常用的方法有Object.toString(),(String)要轉換的對象,String.valueOf(Object)等。下面對這些方法一一進行分析。
方法1:採用 Object.toString()方法
請看下面的例子:
Object object = getObject();
System.out.println(object.toString()); 注1
在這種使用方法中,因為java.lang.Object類里已有public方法.toString(),所以對任何嚴格意義上的java對象都可以調用此方法。但在使用時要注意,必須保證object不是null值,否則將拋出NullPointerException異常。採用這種方法時,通常派生類會覆蓋Object里的toString()方法。
方法2:採用類型轉換(String)object方法
這是標準的類型轉換,將object轉成String類型的值。使用這種方法時,需要注意的是類型必須能轉成String類型。因此最好用instanceof做個類型檢查,以判斷是否可以轉換。否則容易拋出CalssCastException異常。此外,需特別小心的是因定義為Object 類型的對象在轉成String時語法檢查並不會報錯,這將可能導致潛在的錯誤存在。這時要格外小心。如:
Object obj = new Integer(100);
String strVal = (String)obj;
在運行時將會出錯,因為將Integer類型強制轉換為String類型,無法通過。但是,
Integer obj = new Integer(100);
String strVal = (String)obj;
如上格式代碼,將會報語法錯誤。
此外,因null值可以強制轉換為任何java類類型,(String)null也是合法的。
方法3:採用String.valueOf(Object)
String.valueOf(Object)的基礎是Object.toString()。
❹ java中的類型轉換
很簡單,因為第三行中的1不是short類型,是int,int不能直接和short相加減
回頭來看第二行為啥對了
因為si+=1這種寫法可以進行自動的轉換
❺ java 數據類型轉換
java中數據類型是有個隱式的自動轉換的.
byte,short,int和long都是整數,任何數字(如1,11,111等),只要不超過范圍,都是可以賦值給byte,short,int類型的,但不能直接賦值給long,必須在後面加上L(大小寫均可),任何char,byte,short,int之間的計算的結果都是int
型,
如題,
a
=
1;把1賦給a,當然把1賦給byte是沒有問題的,
a
=
a
+
1
;
這樣就等於把int型賦給了byte型是會報錯的.
a
+=
1
是自增運算,+=,-=,*=,/=等運算是不會轉成其他類型的,此題中雖然結果與a
=
a
+
1一樣;
順便展開一點講,共有8種基本數據類型,順要說明的是:byte,short,int,long,float,double,boolean,char
1.char,byte,short,int之間運算會自動轉換為int,不包括自增與自減;
char會以ASCII碼轉換
2.如下鏈條,可以向下賦值,反之剛不行,比如,byte值可以賦給short變數,反之則不行.
3.數字默認類型是int,是不符合如下鏈條的例外情況,只要不超過范圍可以賦值給char,byte,short等類型,比如可以byte
a
=
127是對的,byte
a
=
128是會編譯錯誤的;
4.有小數點的都默認為為double型,加f變float,如2.5f
5.boolean只能邏輯運算
byte->short->int->long->float->double
char->int
❻ java中的強制類型轉換
用(String)做強制類型轉換和用String.valueOf()區別在於:
String 就是直接強制轉化成String型的字元串,且有優先順序限制,像int i=123;不能String s=(String)i。
而String.valueOf()裡面的參數轉換可以是double、long、char[] 、long等等,沒限制,所以String s=String.valueOf(i)。
toString()方法返回的是這個對象的字元串表示,就像是這個對象的名字一樣,任何對象都可以有自己的名字,你可以重寫其toString()方法,給其賦予任意的名字。
但是調用toString()方法的對象不能為 null,否則會拋出異常:java.lang.NullPointerException。
例子如下:
(6)java的類類型轉換擴展閱讀:
java中強制類型轉換
在Java中強制類型轉換分為基本數據類型和引用數據類型兩種,這里我們討論的後者,也就是引用數據類型的強制類型轉換。
在Java中由於繼承和向上轉型,子類可以非常自然地轉換成父類,但是父類轉換成子類則需要強制轉換。
因為子類擁有比父類更多的屬性、更強的功能,所以父類轉換為子類需要強制。那麼,是不是只要是父類轉換為子類就會成功呢?其實不然,他們之間的強制類型轉換是有條件的。
當我們用一個類型的構造器構造出一個對象時,這個對象的類型就已經確定的,也就說它的本質是不會再發生變化了。
在Java中我們可以通過繼承、向上轉型的關系使用父類類型來引用它,這個時候我們是使用功能較弱的類型引用功能較強的對象,這是可行的。但是將功能較弱的類型強制轉功能較強的對象時,就不一定可以行了。
舉個例子來說明。比如系統中存在Father、Son兩個對象。首先我們先構造一個Son對象,然後用一個Father類型變數引用它:
Father father = new Son();
在這里Son 對象實例被向上轉型為father了,但是請注意這個Son對象實例在內存中的本質還是Son類型的,只不過它的能力臨時被消弱了而已,如果我們想變強怎麼辦?將其對象類型還原!
Son son = (Son)father;
這條語句是可行的,其實father引用仍然是Father類型的,只不過是將它的能力加強了,將其加強後轉交給son引用了,Son對象實例在son的變數的引用下,恢復真身,可以使用全部功能了。
前面提到父類強制轉換成子類並不是總是成功,那麼在什麼情況下它會失效呢?
當引用類型的真實身份是父類本身的類型時,強制類型轉換就會產生錯誤。例如:
Father father = new Father();
Son son = (Son) father;
這個系統會拋出ClassCastException異常信息。
所以編譯器在編譯時只會檢查類型之間是否存在繼承關系,有則通過;而在運行時就會檢查它的真實類型,是則通過,否則拋出ClassCastException異常。
所以在繼承中,子類可以自動轉型為父類,但是父類強制轉換為子類時只有當引用類型真正的身份為子類時才會強制轉換成功,否則失敗