Java的幾個基本類型之間的相互轉(zhuǎn)換

一颇蜡、String的轉(zhuǎn)換

首先介紹一下String類型的轉(zhuǎn)換候醒,一般遇到的情況可能會有以下幾種:Strng轉(zhuǎn)int,String轉(zhuǎn)long次慢,String轉(zhuǎn)byte數(shù)組,String轉(zhuǎn)float翔曲,下面主要介紹這四種情況迫像。

  • String轉(zhuǎn)int
    把String類型轉(zhuǎn)換為int類型,常用的有以下三種方法:
public class StringToInt {
    public static void main(String[] args) {
        String number = "123456";
        int num1 = Integer.parseInt(number);//使用Integer的parseInt方法
        int num2 = new Integer(number);//強制轉(zhuǎn)換
        int num3 = Integer.valueOf(number).intValue();//先轉(zhuǎn)Integer類型瞳遍,再調(diào)用intValue()轉(zhuǎn)為int
    }
}
  • String轉(zhuǎn)long
    把String類型轉(zhuǎn)換為long類型的方法跟上面的方法類似闻妓。
public class StringToLong {
    public static void main(String[] args) {
        String number = "1234567890";
        long num1 = Long.parseLong(number);//調(diào)用Long類型的parseLong方法
        long num2 = new Long(number);//強制轉(zhuǎn)換
        long num3 = Long.valueOf(number).longValue();//先轉(zhuǎn)換Long類型,再使用longValue方法轉(zhuǎn)為long
    }
}
  • String轉(zhuǎn)float
    把String類型轉(zhuǎn)換為float類型的方法也跟上面的類似傅蹂。
public class StringToFloat {
    public static void main(String[] args) {
        String number = "1234.202";
        float num1 = Float.parseFloat(number);//調(diào)用Float的parseFloat方法
        float num2 = new Float(number);//強制轉(zhuǎn)換
        float num3 = Float.valueOf(number).floatValue();//先轉(zhuǎn)為Float類型再使用floatValue轉(zhuǎn)為float
    }
}
  • String轉(zhuǎn)byte[]
    String類型轉(zhuǎn)byte數(shù)組方法一般使用String類自帶的getBytes()方法纷闺。
public class StringToByte {
    public static void main(String[] args) {
        byte[] num = new byte[200];
        String number = "1234567890";
        num = number.getBytes();
    }
}

補充一個path類型轉(zhuǎn)換為String類型的方法:
String fileName=path.getFileName().toString();

二算凿、long類型轉(zhuǎn)換

long類型的轉(zhuǎn)換,這一部分用的情況也很多犁功,下面介紹幾種常見的情況氓轰。

  • long轉(zhuǎn)String
    long類型轉(zhuǎn)String類型,這里主要介紹三種方法:
public class LongToString {
    public static void main(String[] args) {
        long number = 1234567890l;
        String num1 = Long.toString(number);//Long的tostring方法
        String num2 = String.valueOf(number);//使用String的valueOf方法
        String num3 = "" + number;//這個應(yīng)該屬于強制轉(zhuǎn)換吧
    }
}
  • long轉(zhuǎn)int
    long類型轉(zhuǎn)換為int類型浸卦,這里也主要介紹三種方法:
public class LongToInt {
    public static void main(String[] args) {
        long number = 121121121l;
        int num1 = (int) number;// 強制類型轉(zhuǎn)換
        int num2 = new Long(number).intValue();// 調(diào)用intValue方法
        int num3 = Integer.parseInt(String.valueOf(number));// 先把long轉(zhuǎn)換位字符串String署鸡,然后轉(zhuǎn)換為Integer
    }
}

三、 int類型的轉(zhuǎn)換

int類型的轉(zhuǎn)換也是我們經(jīng)常使用的情況怒医,下面也主要介紹幾種常見的情況炉抒。

  • int轉(zhuǎn)String

int類型轉(zhuǎn)換為String類型與long轉(zhuǎn)String的類似,一般也有以下三種方法稚叹。

public class IntToString {
    public static void main(String[] args) {
        int number = 121121;
        String num1 = Integer.toString(number);//使用Integer的toString方法
        String num2 = String.valueOf(number);//使用String的valueOf方法
        String num3 = "" + number;//也是強制轉(zhuǎn)換吧
    }
}
  • int與Byte的相互轉(zhuǎn)換
    關(guān)于int類型與byte[]數(shù)組的轉(zhuǎn)換焰薄,一般情況下,我們使用條件都是在這里轉(zhuǎn)換過來扒袖,在另外一個地方就要轉(zhuǎn)換回來塞茅,這里介紹兩種int與byte數(shù)組互相轉(zhuǎn)換的方式。
//int類型轉(zhuǎn)換為byte[]數(shù)組
public static byte[] intToByteArray(int i) {
    byte[] result = new byte[4];
    // 由高位到低位
    result[0] = (byte) ((i >> 24) & 0xFF);
    result[1] = (byte) ((i >> 16) & 0xFF);
    result[2] = (byte) ((i >> 8) & 0xFF);
    result[3] = (byte) (i & 0xFF);
    return result;
}
//byte數(shù)組轉(zhuǎn)換為int類型
public static int byteArrayToInt(byte[] bytes) {
    int value = 0;
    // 由高位到低位
    for (int i = 0; i < 4; i++) {
        int shift = (4 - 1 - i) * 8;
        value += (bytes[i] & 0x000000FF) << shift;// 往高位游
    }
    return value;
}

還有一種為:

//int類型轉(zhuǎn)換為byte[]數(shù)組
public static byte[] intToByteArray(int x) {
    byte[] bb = new byte[4];
    bb[3] = (byte) (x >> 24);
    bb[2] = (byte) (x >> 16);
    bb[1] = (byte) (x >> 8);
    bb[0] = (byte) (x >> 0);
    return bb;
}
//byte數(shù)組轉(zhuǎn)換為int類型
public static int byteArrayToInt(byte[] bb) {
    return (int) ((((bb[3] & 0xff) << 24) | ((bb[2] & 0xff) << 16) | ((bb[1] & 0xff) << 8) | ((bb[0] & 0xff) << 0)));
}
  • int轉(zhuǎn)long
    int類型轉(zhuǎn)換為long類型的情況并不是大多季率,這里主要接收幾種轉(zhuǎn)換方法:
public class IntToLong {
    public static void main(String[] args) {
        int number = 123111;
        long num1 = (long) number;//強制
        long num2 = Long.parseLong(new Integer(number).toString());//先轉(zhuǎn)String再進行轉(zhuǎn)換
        long num3 = Long.valueOf(number);
    }
}
  • int轉(zhuǎn)Interger
    int類型轉(zhuǎn)換為Interger類型的情況野瘦,我是基本上每怎么遇到過,在這里也上網(wǎng)查詢一些資料找到了兩種方法飒泻。
public class IntToInterge {
    public static void main(String[] args) {
        int number = 123456;
        Integer num1 = Integer.valueOf(number);
        Integer num2 = new Integer(number);
    }
}

四鞭光、byte數(shù)組的轉(zhuǎn)換

關(guān)于byte數(shù)組的轉(zhuǎn)換,上面有幾個都是它們只見相互轉(zhuǎn)換的蠢络,所以這里就不再介紹那么多衰猛,只介紹一個byte數(shù)組轉(zhuǎn)換String類型的方法,其他的類型可以通過String類型再進行轉(zhuǎn)換刹孔。

byte數(shù)組轉(zhuǎn)String類型的方法經(jīng)常用的可能就是下面這種方法啡省。

public class ByteToString {
    public static void main(String[] args) {
        byte[] number = "121121".getBytes();
        String num1 = new String(number);
    }
}

最后簡單補充以下Java基本數(shù)據(jù)類型的一些知識:

類型 字節(jié)數(shù) 類名稱 范圍
int 4字節(jié) Interger -2147483648 ~ 2147483647
short 2字節(jié) Short -32768 ~ 32767
long 8字節(jié) Long -9223372036854775808 ~ 9223372036854775807
byte 1字節(jié) Byte -128 ~ 127
float 4字節(jié) Float -2^128 ~ +2^128
double 8字節(jié) Double -2^1024 ~ +2^1024

轉(zhuǎn)載自:http://matt33.com/2015/10/27/TheTransformOfJava/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市髓霞,隨后出現(xiàn)的幾起案子卦睹,更是在濱河造成了極大的恐慌,老刑警劉巖方库,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件结序,死亡現(xiàn)場離奇詭異,居然都是意外死亡纵潦,警方通過查閱死者的電腦和手機徐鹤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門垃环,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人返敬,你說我怎么就攤上這事遂庄。” “怎么了劲赠?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵涛目,是天一觀的道長。 經(jīng)常有香客問我凛澎,道長霹肝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任塑煎,我火速辦了婚禮沫换,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘最铁。我一直安慰自己苗沧,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布炭晒。 她就那樣靜靜地躺著,像睡著了一般甥角。 火紅的嫁衣襯著肌膚如雪网严。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天嗤无,我揣著相機與錄音震束,去河邊找鬼。 笑死当犯,一個胖子當(dāng)著我的面吹牛垢村,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嚎卫,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼嘉栓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拓诸?” 一聲冷哼從身側(cè)響起侵佃,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奠支,沒想到半個月后馋辈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡倍谜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年迈螟,在試婚紗的時候發(fā)現(xiàn)自己被綠了叉抡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡答毫,死狀恐怖褥民,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烙常,我是刑警寧澤轴捎,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站蚕脏,受9級特大地震影響侦副,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驼鞭,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一秦驯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挣棕,春花似錦译隘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至词身,卻和暖如春厅目,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背法严。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工损敷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人深啤。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓拗馒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親溯街。 傳聞我的和親對象是個殘疾皇子诱桂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344