??說明:本文摘自菜鳥教程中java教程的筆記中档泽,記錄下來只為了方便本人查看攻泼;
1、包裝類過渡類型轉(zhuǎn)換
一般情況下协怒,我們首先聲明一個(gè)變量涝焙,然后生成一個(gè)對應(yīng)的包裝類卑笨,就可以利用包裝類的各種方法進(jìn)行類型轉(zhuǎn)換了孕暇。例如:
當(dāng)希望把float型轉(zhuǎn)換為double型時(shí):
float f1=100.00f;
Float F1=new Float(f1);
double d1=F1.doubleValue();//F1.doubleValue()為Float類的返回double值型的方法
簡單類型的變量轉(zhuǎn)換為相應(yīng)的包裝類,可以利用包裝類的構(gòu)造函數(shù)。即:Boolean(boolean value)妖滔、Character(char value)隧哮、Integer(int value)、Long(long value)座舍、Float(float value)沮翔、Double(double value)
而在各個(gè)包裝類中,總有形為××Value()的方法曲秉,來得到其對應(yīng)的簡單類型數(shù)據(jù)采蚀。利用這種方法,也可以實(shí)現(xiàn)不同數(shù)值型變量間的轉(zhuǎn)換承二,例如榆鼠,對于一個(gè)雙精度實(shí)型類,intValue()可以得到其對應(yīng)的整型變量亥鸠,而doubleValue()可以得到其對應(yīng)的雙精度實(shí)型變量妆够。
2、字符串與其它類型間的轉(zhuǎn)換
其它類型向字符串的轉(zhuǎn)換
- 調(diào)用類的串轉(zhuǎn)換方法:X.toString();
- 自動(dòng)轉(zhuǎn)換:X+"";
- 使用String的方法:String.valueOf(X);
3负蚊、字符串作為值,向其它類型的轉(zhuǎn)換
1神妹、先轉(zhuǎn)換成相應(yīng)的封裝器實(shí)例,再調(diào)用對應(yīng)的方法轉(zhuǎn)換成其它類型
例如,字符中"32.1"轉(zhuǎn)換double型的值的格式為:new Float("32.1").doubleValue()家妆。也可以用:Double.valueOf("32.1").doubleValue()
2鸵荠、靜態(tài)parseXXX方法
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
3、Character的getNumericValue(char ch)方法
4伤极、Date類與其它數(shù)據(jù)類型的相互轉(zhuǎn)換
整型和Date類之間并不存在直接的對應(yīng)關(guān)系腰鬼,只是你可以使用int型為分別表示年、月塑荒、日熄赡、時(shí)、分齿税、秒彼硫,這樣就在兩者之間建立了一個(gè)對應(yīng)關(guān)系,在作這種轉(zhuǎn)換時(shí)凌箕,你可以使用Date類構(gòu)造函數(shù)的三種形式:
- Date(int year, int month, int date):以int型表示年拧篮、月、日
- Date(int year, int month, int date, int hrs, int min):以int型表示年牵舱、月串绩、日、時(shí)芜壁、分
- Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年礁凡、月高氮、日、時(shí)顷牌、分剪芍、秒
在長整型和Date類之間有一個(gè)很有趣的對應(yīng)關(guān)系,就是將一個(gè)時(shí)間表示為距離格林尼治標(biāo)準(zhǔn)時(shí)間1970年1月1日0時(shí)0分0秒的毫秒數(shù)窟蓝。對于這種對應(yīng)關(guān)系罪裹,Date類也有其相應(yīng)的構(gòu)造函數(shù):Date(long date)。
獲取Date類中的年运挫、月状共、日、時(shí)谁帕、分口芍、秒以及星期你可以使用Date類的getYear()、getMonth()雇卷、getDate()鬓椭、getHours()、getMinutes()关划、getSeconds()小染、getDay()方法,你也可以將其理解為將Date類轉(zhuǎn)換成int贮折。
而Date類的getTime()方法可以得到我們前面所說的一個(gè)時(shí)間對應(yīng)的長整型數(shù)裤翩,與包裝類一樣,Date類也有一個(gè)toString()方法可以將其轉(zhuǎn)換為String類调榄。
有時(shí)我們希望得到Date的特定格式踊赠,例如20020324,我們可以使用以下方法每庆,首先在文件開始引入:
import java.text.SimpleDateFormat;
java.util.Date date = new java.util.Date();
//如果希望得到Y(jié)YYYMMDD的格式
SimpleDateFormat sy1=new SimpleDateFormat("yyyyMMdd");
String dateFormat=sy1.format(date);
//如果希望分開得到年筐带,月,日
SimpleDateFormat sy=new SimpleDateFormat("yyyy");
SimpleDateFormat sm=new SimpleDateFormat("MM");
SimpleDateFormat sd=new SimpleDateFormat("dd");
String syear=sy.format(date);
String smon=sm.format(date);
String sday=sd.format(date);
總結(jié):
1缤灵、只有 boolean 不參與數(shù)據(jù)類型的轉(zhuǎn)換
2伦籍、自動(dòng)類型的轉(zhuǎn)換:
- a.常數(shù)在表數(shù)范圍內(nèi)是能夠自動(dòng)類型轉(zhuǎn)換的
- b.數(shù)據(jù)范圍小的能夠自動(dòng)數(shù)據(jù)類型大的轉(zhuǎn)換(注意特例)
?float 到 int,float 到 long腮出,double 到 int帖鸦,double 到 long 等由浮點(diǎn)類型轉(zhuǎn)換成整數(shù)類型時(shí),是不會(huì)自動(dòng)轉(zhuǎn)換的胚嘲,不然將會(huì)丟失精度作儿。 - c.引用類型能夠自動(dòng)轉(zhuǎn)換為父類的
- d.基本類型和它們包裝類型是能夠互相轉(zhuǎn)換的
3、強(qiáng)制類型轉(zhuǎn)換:用圓括號括起來目標(biāo)類型馋劈,置于變量前
其他
在 java 中攻锰,任何字符類型與字符串相加晾嘶,結(jié)果都是拼接:
String s = null;
s += "hello";
System.out.println(s); // 輸出 nullhello
原因:先應(yīng)用 String.valueOf 得出 s 的 value 值,再通過 StringBuilder 拼接 hello口注,因此將 value 與 hello 進(jìn)行了拼接。
String s = null;
s = (new StringBuilder(String.valueOf(s))).append("hello").toString();
System.out.println(s);