1. 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
2. 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()方法,不再給出示例代碼。
3. JAVA基本數據類型轉換
基本類型中byte、short、int、long
和
float、double
依次增大,當後者轉換成前者時需要強制轉換,例如:long
a
=
100L;int
b
=
(int)a
;
但前者轉換成後者,則可以直接賦值,JVM會完成自動轉換
4. java中如何進行安全的類型轉換
java中類型轉換有自動轉化跟強制類型轉換;打個比方就是:int轉double類型是自動轉化,
而double轉化成int是強制類型轉化;(注意強制類型轉化會造成數據丟失)
以下是大概類型轉化:
byte->short->int->long->double
char->int ->long->double
char->int ->float->double
long->float
5. 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」);