java類型轉換
⑴ java中幾種常用數據類型之間轉換的方法
下面給你例舉10種Java中幾種常用的數據類型之間轉換方法:
1. short-->int 轉換
exp: short shortvar=0;
int intvar=0;
shortvar= (short) intvar
2. int-->short 轉換
exp: short shortvar=0;
int intvar=0;
intvar=shortvar;
3. int->String 轉換
exp: int intvar=1;
String stringvar;
Stringvar=string.valueOf (intvar);
4. float->String 轉換
exp: float floatvar=9.99f;
String stringvar;
Stringvar=String.valueOf (floatvar);
5. double->String 轉換
exp double doublevar=99999999.99;
String stringvar;
Stringvar=String.valueOf (doublevar);
6. char->String 轉換
exp char charvar=』a』;
String stringvar;
Stringvar=String.valueOf (charvar);
7 String->int、float、long、double 轉換
Exp String intstring=」10」;
String floatstring=」10.1f」;
String longstring=」99999999」;
String doubleString=」99999999.9」;
Int I=Integer.parseInt (intstring);
Float f= Integer.parseInt (floatstring);
Long lo=long. parseInt (longstring);
Double d=double. parseInt (doublestring);
8 String->byte、short 轉換
Exp String s=」0」;
Byte b=Integer.intValue(s);
Short sh=Integer.intValue(s);
9 String->char 轉換
Exp String s=」abc」;
Char a=s.charAt(0);
返回字元a
10 String-->boolean 轉換
String s=」true」;
Boolean flag=Boolean.valueOf (「s」);
⑵ java類型轉換
public static void main(String[]args){
double d1 = 12;
double d2 = 2.55;
// 必須藉助BigDecimal的幫助才能獲取精確值!! 先轉化為字元串 然後進行計算
BigDecimal b = new BigDecimal(Double.toString(d1));
BigDecimal a = new BigDecimal(Double.toString(d2));
// multiply 乘法 doubleValue()得到double的值
double result = b.multiply(a).doubleValue();
System.out.print(result);
}
滿意請採納!!
⑶ 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各種類型之間怎麼轉換
java裡面基本數據類型就int
浮點型
字元型和布爾
轉換的規則是
byte,short,char——》int——》long——》float——》double
還有什麼強制類型轉換是指低類型的轉向高類型的
和c差不多了
⑸ Java中整數類型轉換
在Java中,類型轉換分為兩種:一是隱式類型轉換,二是強制類型轉換。
隱式類型轉換是低精度數據向高精度數據轉換,系統自動執行,不需要編程人員手動實現。
強制類型轉換是高精度數據向低精度數據轉換,需要編程人員手動實現轉換。
精度由低到高的順序為byte<short<int <long<float<double
所以在樓主的第一個問題中答案是byte short 轉為int是都不需要強制轉換的。
樓主的追問中提到的問題涉及到了Java的默認類型,在Java中整數型默認為int,
所以無論樓主定義的a b是byte還是short, 其a+b的結果都是默認為int的。而樓主是用byte或short型變數接收a+b的運算結果。又因為int的精度高於byte和short, 所以他們都需要進行強制轉換,否則編譯是會報錯的。
//byte運算
bytea=1;
byteb=2;
bytex=(byte)(a+b);
System.out.println(x);
//short運算
shortw=1;
shorts=2;
shortz=(short)(w+s);
System.out.println(z);
注意:在這個的強制類型轉換中,因為涉及到了運算中類型提升問題,所以應當將a+b或w+s 整體用括弧擴住,否則編譯器仍會報錯。
⑹ 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的類型轉換
A包含B,請問A怎麼轉換成B
其實不建議用包含關系來描述繼承
A包含B --->A是父類,B是子類
用A作為animal, B作為Dog來舉例
Animal dog = new Dog();//合法
Dog dog = new Dog();//合法
Animal dog = new Animal() ;//合法
Dog dog = new Animal();//不合法
所以A 包含於B,你能把一個狗轉換為動物,因為動物具有的屬性狗都有。但是你不能把一個動物轉換為dog,原因在於dog具有的屬性動物未必有。
⑻ Java中的強制類型轉換是如何轉換的
java中數據類型的強制轉換是通過強制轉換語句完成的,強制轉換語句的格式為「目標數據類型 變數 = (目標數據類型) 數據;」。下面給出例子:
1、定義兩個位元組數據類型a、b、c,分別賦予1和2和a+b的值,進行加法運算的式子a+b=3,得出的結果「3」將會被編譯環境判定為整形數據,把這個整形數據賦值給c,系統將會報錯,這樣就需要用到格式為「目標數據類型 變數 = (目標數據類型) 數據;」的強制轉換語句。
2、根據強制轉換語句的格式,易得「byte c = (byte)(a+b);」;
3、這樣就把整形數據的「3」賦值給位元組數據類型的c了,其中完成數據的強制類型轉換。
(8)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類型不發生改變;
⑼ java語言中幾種類型轉換的方法 詳細�0�3
當然,Java 在提供大量的其它類時,也提供了與簡單數據類型對應的封裝類,於是,Java 中就有了諸如int 和Integer(float 和Float、double 和Double�6�7�6�7)的不同的數據類型。 Java 語言的數據類型有兩大類:一類是簡單類型,也稱主要類型(Primitive),另一類是引用類型(Reference)。簡單類型變數中存儲的是具體的值,而引用類型的變數中存儲的是對象的引用。 Java 決定了每種簡單類型的大小。這些大小並不隨著機器結構的變化而變化。這種大小的不可更改正是Java 程序具有很強移植能力的原因之一。 下表列出了Java 中定義的簡單類型、佔用二進制位數及對應的封裝器類。 表 Java 中的簡單類型 簡單類型 boolean byte char short int long float double void 二進制位數 1 8 16 16 32 64 32 64 -- 封裝器類 Boolean Byte Character Short Integer Long Float Double Void ⑵為什麼使用封裝類 以int 和Integer 為例來說,雖然從本質上它們都代表一個32 位的整數,但它們卻是不同的數據類型。事實上,Java 中直接使用的整數都為int(就int 和Integer 而言),只有當數據必須作為對象的身份出現時,才必須用int 對應的封裝器Intege 將整數值封裝成對象。 例如:為給 java.util 包中的 Vector 添加一個整數,就必須如下將該整數值封裝在一個 Integer 實例中: Vector v=new Vector(); int k=121; v.addElemt(new Integer(k)); 另外,Integer 作為 int 對應的封裝器類,提供了許多的方法,比如:Integer 的構造方法、 Integer 向其它各種數值類型的轉換方法等等,而這些是int 類型數據所沒有的。 2.簡單數據類型之間的轉換 簡單類型數據間的轉換,有兩種方式:自動轉換和強制轉換,通常發生在表達式中或方法的參數傳遞時。 ⑴自動轉換 具體地講,當一個較「小」數據與一個較「大」的數據一起運算時,系統將自動將「小」數據轉換成「大」數據,再進行運算。而在方法調用時,實際參數較「小」,而被調用的方法的形式參數數據又較「大」時(若有匹配的,當然會直接調用匹配的方法),系統也將自動將「小」數據轉換成「大」數據,再進行方法的調用,自然,對於多個同名的重載方法,會轉換成最「接近」的「大」數據並進行調用。 這些類型由「小」到「大」分別為 (byte,short,char)--int--long--float—double。這里我們所說的「大」與「小」,並不是指佔用位元組的多少,而是指表示值的范圍的大小。 請看下面的示例: ①下面的語句可以在Java 中直接通過: byte b; int i=b; long l=b; float f=b; double d=b; ②如果低級類型為char 型,向高級類型(整型)轉換時,會轉換為對應ASCII 碼值,例如 char c='c'; int i=c; System.out.println("output:"+i); 輸出:output:99; ③對於byte,short,char 三種類型而言,他們是平級的,因此不能相互自動轉換,可以使用下述的強制類型轉換。 short i=99 ; char c=(char)i; System.out.println("output:"+c); 輸出:output:c; ④對象多態中若有方法: f(byte x){�6�7�6�7}; f(short x) {�6�7�6�7}; f(int x) {�6�7�6�7}; f(long x) {�6�7�6�7}; f(float x) {�6�7�6�7}; f(double x) {�6�7�6�7}; 又有:char y=』A』;那麼,語句 f(y)會調用哪一個方法呢?答案是:f(int x) {�6�7�6�7}方法,因為它的形參比實參「大」且是最「接近」的。 而對於方法: f(float x) {�6�7�6�7}; f(double x) {�6�7�6�7}; 又有:long y=123L;那麼,語句f(y)調用的方法則是f(float x) {�6�7�6�7}。 ⑵強制轉換 將「大」數據轉換為「小」數據時,你可以使用強制類型轉換。即你必須採用下面這種語句格式: int n=(int)3.14159/2; 可以想像,這種轉換肯定可能會導致溢出或精度的下降。 註: ①當位元組類型變數參與運算,java 作自動數據運算類型的提升,將其轉換為int 類型。 byte b; b=3; b=(byte)(b*3);//必須聲明byte。 ②帶小數的變數默認為double 類型。 float f; f=1.3f;//必須聲明f。 ⑶包裝類過渡類型轉換 一般情況下,我們首先聲明一個變數,然後生成一個對應的包裝類,就可以利用包裝類的各種方法進行類型轉換了。 再分享 java.lang.math 中的幾個函數: 四捨五入: static long round(double a) Returns the closest long to the argument. static int round(float a) Returns the closest int to the argument. 下取整: static double ceil(double a) Returns the smallest (closest to negative infinity) double value that is not less than the argument and is equal to a mathematical integer. 上取整: static double floor(double a) Returns the largest (closest to positive infinity) double value that is not greater than the argument and is equal to a mathematical integer. 例如: import java.lang.*; public class quzheng{ public static void main(String args[]){ //四捨五入 System.out.println(Math.round(3.40d)); System.out.println(Math.round(3.60d)); System.out.println(Math.round(3.40f)); System.out.println(Math.round(3.60f)); //上取整 System.out.println(Math.ceil(3.4)); System.out.println(Math.ceil(3.6)); //下取整 System.out.println(Math.floor(3.40)); System.out.println(Math.floor(3.60)); } } 結果為: 3 4 3 4 4.0 4.0 3.0 3.0
⑽ java中的類型轉換
很簡單,因為第三行中的1不是short類型,是int,int不能直接和short相加減
回頭來看第二行為啥對了
因為si+=1這種寫法可以進行自動的轉換