java中數據類型轉換
1. java基本數據類型轉換
首先你要明確我們什麼時候需要類型轉換,在java中整形數據默認為int類型,浮點數據默認為double類型,舉個例子給你看看int a=300;byte b;b=(byte)a;float c;double d=4545452.121;c=(float)d;一般只有當後面那個數據超過前面數據類型的范圍的時候我們才進行轉換,沒超過的話可以直接放入其中
2. Java中數據類型轉換有幾種每種轉換都在什麼情況下使用
java
中自動化轉換和強制轉換
自動轉換就例如簡單類型的轉換,可以自動通過
如整形轉換城FLOAT,或者double
有些字元串類型則被轉換成相應的ascii碼
而轉換會產生溢出或者丟失的轉換則需要編程者進行強制轉換
相對的java中還有原始變數和java進行封裝的數據類型的轉換
float
f=10.01;
Float
F=new
Float(f);
每種轉換根據編程需要使用。
3. java中各數據類型是如何實現強制類型轉換的
轉型有兩種:
向上轉型和向下轉型(強制轉型)
兩種分別如下:
一種是向上轉型對於基礎數據類型
,
可以自動轉型
,比如:int
a
=
10;long
b
=
a;這里就是把int型轉成了long型
,
因為
long范圍比int大
,
這樣的轉型不會有任何影響
,
所以可以自動轉型
又比如
A
a
=
new
B();
其中
A
是B
的父類
,
這也是多態
,
就是父類的對象指向子類的引用
,
你調用a對象
,
實際上是B的類
,
但是B繼承A
,
擁有A的一切屬性和方法
(不談復寫)
</ol>第二種是向下轉型
,
也就是強制這種需要強轉
,
比如long
a
=
10
;int
b
=
(int)
a;通過
(int)可以強制轉型
,
但是這樣會丟失精度
,
比如a如果超過了b的范圍
,
那麼強轉成int型,
只會等於int的最大值又比如
:B
b
=
new
A();
這樣是不行的
,
需要有中間途徑
,
比如A
a
=
new
A();
Object
obj
=
a;
B
b
=
(A)
a;而這種強轉
,
又有要求
,
必須是同類型
,
也就是說
A
就是B
,
不然會報錯.</ol>不同類型之間如果要轉型
,
需要通過中間途徑
,
比如JSON
,
將A轉成JSON串
,
然後再轉換為B
</ol></ol>
4. 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()方法,不再給出示例代碼。
5. Java強制數據類型轉換
規則可不少,挺亂的其實:
強制數據類型轉換: int nowC = (int)c;
還可以這樣,使用intValue方法,返回一個int值:
Double d = 5 / 9.0 * (f - 32);
int nowC = d.intValue();
Double類是基本數據類型double所對應的包裝類。
基本數據類型轉換的規則:
Java中基本數據類型共有8種,其中boolean類型不能轉換為其它類型,其它類型也不能轉換為boolean型
除了boolean類型,還有7種,按照它們的容量(也就是表數范圍,就是能表示的數的大小范圍,比如char是0——65535)的大小,從小到大,排序依次為:
byte short char int long float double
1.容量小的向容量大的轉換,可以自動轉換,比如可以直接將一個int類型賦值給double:
double d = 34;
2.容量大的向容量小的轉換,必須強制類型轉換,就是你上面的那種形式,比如:
double c = 5/9.0 *(f - 32);
int nowC = (int)c;
3.整數類型常量默認為int類型,比如17
4.浮點類型常量默認為double類型,比如3.14
5.在多種數據類型混合運算時,容量小的自動轉換為整個表達式中容量最大的,然後再進行計算,比如:
int i = 9; float f = 4f; double d = 3.14; double dd = i+f+d;
此時,i和f都各自先轉換成double,在進行+運算。
6.在多種數據類型混合運算時,byte short char 3者不會互相轉換,他們各自轉換為int再進行計算
7.在有些時候,容量小的會自動提升為容量大的,比如方法重載傳參數時候,
但是byte 和 short 不會自動提升為char,其它類型按照我上面所述的順序提升。
差不多就這些,不明白補充,另外需要注意的是強轉雖然編譯沒問題,但是運行時,有可能會數據溢出,損失精度
6. java中如何進行字元串和數據類型的轉換
java總字元串轉換成其他基本數據類型的方式,可以使用基本數據類型的toString()方法,還有String類型轉換成其他的基本數據類型,示例如下:
IntegerI1=newInteger(i1);//生成Integer類
FloatF1=newFloat(f1);//生成Float類
DoubleD1=newDouble(d1);//生成Double類
//分別調用包裝類的toString()方法轉換為字元串
Stringsi1=I1.toString();
Stringsf1=F1.toString();
Stringsd1=D1.toString();
Sysytem.out.println("si1"+si1);
Sysytem.out.println("sf1"+sf1);Sysytem.out.println("sd1"+sd1);
StringMyNumber="1234";
intMyInt=Integer.parseInt(MyNumber);
字元串轉換成byte,short,int,float,double,long等數據類型,可以分別參考Byte,Short,Integer,Float,Double,Long類的parseXXX方法。
7. java中的數據類型可以進行強制轉換嗎,String和int如何進行強制轉換
可以轉換,在平時寫代碼的時候經常會用到string和int數據類型的轉換,由於java和python在string和int數據類型轉換的時候是不一樣的。
在 java中要將 String 類型轉化為 int 類型時,需要使用 Integer 類中的parseInt() 方法或者valueOf() 方法進行轉換。
String str = "123";try { int a = Integer.parseInt(str);
} catch (NumberFormatException e) {
e.printStackTrace();
}String str = "123";try { int b = Integer.valueOf(str).intValue()
} catch (NumberFormatException e) {
e.printStackTrace();
}
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
8. java數據類型轉換
這很明顯
第一 c=(int)d; 意思是把d的值強轉為int類,然後賦給c,那麼c自然也等於8000.
第二 f=(float)g; 意思是把double類型的g值,強轉為float類型然後賦給f,因為float是單精度,所以結果就去掉小數點的一半.
9. Java中的強制類型轉換是如何轉換的
java中數據類型的強制轉換是通過強制轉換語句完成的,強制轉換語句的格式為「目標數據類型 變數 = (目標數據類型) 數據;」。下面給出例子:
1、定義兩個位元組數據類型a、b、c,分別賦予1和2和a+b的值,進行加法運算的式子a+b=3,得出的結果「3」將會被編譯環境判定為整形數據,把這個整形數據賦值給c,系統將會報錯,這樣就需要用到格式為「目標數據類型 變數 = (目標數據類型) 數據;」的強制轉換語句。
2、根據強制轉換語句的格式,易得「byte c = (byte)(a+b);」;
3、這樣就把整形數據的「3」賦值給位元組數據類型的c了,其中完成數據的強制類型轉換。
(9)java中數據類型轉換擴展閱讀:
基本類型 轉換原則:
1、類型轉換主要在在賦值、方法調用、算術運算三種情況下發生。
a、賦值和方法調用 轉換規則:從低位類型到高位類型自動轉換;從高位類型到低位類型需要強制類型轉換:
(1)布爾型和其它基本數據類型之間不能相互轉換;
(2)byte型可以轉換為short、int、、long、float和double;
(3)short可轉換為int、long、float和double;
(4)char可轉換為int、long、float和double;
(5)int可轉換為long、float和double;
(6)long可轉換為float和double;
(7)float可轉換為double;
b、算術運算 中的類型轉換:
1、基本就是先轉換為高位數據類型,再參加運算,結果也是最高位的數據類型;
2、byte short char運算會轉換為Int;
(1)如操作數之一為double,則另一個操作數先被轉化為double,再參與算術運算。
(2)如兩操作數均不為double,當操作數之一為float,則另一操作數先被轉換為float,再參與運算。
(3)如兩操作數均不為double或float,當操作數之一為long,、則另一操作數先被轉換為long,再參與算術運算。
(4)如兩操作數均不為double、float或long,則兩操作數先被轉換為int,再參與運算。
特殊:
(1)如採用+=、*=等縮略形式的運算符,系統會自動強制將運算結果轉換為目標變數的類型。
(2) 當運算符為自動遞增運算符(++)或自動遞減運算符(--)時,如果操作數為byte,short或char類型不發生改變;