<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java基本數(shù)據(jù)類型轉(zhuǎn)換

    1 字符串轉(zhuǎn)換成數(shù)據(jù)
    字符串轉(zhuǎn)換成整數(shù):
    String MyNumber ="1234";
    int MyInt = Integer.parseInt(MyNumber);
    字符串轉(zhuǎn)換成byte, short, int, float, double, long等數(shù)據(jù)類型,可以分別參考Byte, Short, Integer, Float, Double, Long類的parseXXX方法。

     

    2 數(shù)據(jù)轉(zhuǎn)換成字符串
    整數(shù)轉(zhuǎn)換成字符串:
    int MyInt = 1234;
    String MyString = "" + MyInt;
    其它數(shù)據(jù)類型可以利用同樣的方法轉(zhuǎn)換成字符串。

    3 十進(jìn)制到其他進(jìn)制的轉(zhuǎn)換
    十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù),返回結(jié)果是一個(gè)字符串:
    Integer.toBinaryString(int i);
    Integer和Long提供了toBinaryString, toHexString和toOctalString方法,可以方便的將數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制、十六進(jìn)制和八進(jìn)制字符串。功能更加強(qiáng)大的是其toString(int/long i, int radix)方法,可以將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換成任意進(jìn)制的字符串形式。
    byte, short, float和double等數(shù)據(jù)類型,可以利用Integer或者是Long的toBinaryString, toHexString, to OctalString和toString方法轉(zhuǎn)換成其他進(jìn)制的字符串形式。

    4 其它進(jìn)制到十進(jìn)制的轉(zhuǎn)換
    五進(jìn)制字符串14414轉(zhuǎn)換成十進(jìn)制整數(shù),結(jié)果是1234:
    System.out.println(Integer.valueOf("14414", 5);
    Integer和Long提供的valueOf(String source, int radix)方法,可以將任意進(jìn)制的字符串轉(zhuǎn)換成十進(jìn)制數(shù)據(jù)。

    5 整數(shù)到字節(jié)數(shù)組的轉(zhuǎn)換
    public static byte[] toByteArray(int number)
    {
    int temp = number;
    byte[] b=new byte[4];
    for (int i = b.length - 1; i > -1; i--)
    {
    b[i] = new Integer(temp & 0xff).byteValue();
    temp = temp >> 8;
    }
    return b;
    }

    6 字節(jié)數(shù)組到整數(shù)的轉(zhuǎn)換
    public static int toInteger(byte[] b)
    {
    int s = 0;
    for (int i = 0; i < 3; i++)
    {
    if (b[i] > =0)
    s = s + b[i];
    else
    s = s + 256 + b[i];
    s = s * 256;
    }
    if (b[3] > 0)
    s = s + b[3];
    else
    s = s + 256 + b[3];
    return s;
    }

    7 短整數(shù)與字節(jié)數(shù)組之間的相互轉(zhuǎn)換
    short與int之間的區(qū)別在于short是兩個(gè)字節(jié)的,而int是四個(gè)字節(jié)的。因此,只需要將5 與6 中的范例程序小做改動,即可實(shí)現(xiàn)短整數(shù)與字節(jié)數(shù)組之間的相互轉(zhuǎn)換。

    8 字節(jié)數(shù)組轉(zhuǎn)換成雙精度浮點(diǎn)數(shù)
    public double toDouble(byte[] b)
    {
    long l = 0;
    Double D = new Double(0.0);
    l = b[0];
    l |= ((long)b[1]<<8);
    l |= ((long)b[2]<<16);
    l |= ((long)b[3]<<24);
    l |= ((long)b[4]<<32);
    l |= ((long)b[5]<<40);
    l |= ((long)b[6]<<48);
    l |= ((long)b[7]<<56);
    return D.longBitsToDouble(l);
    }

    9 布爾類型轉(zhuǎn)換成字符串
    第一種方法是:

    boolean bool = true;
    String s = new Boolean(bool).toString();//將bool利用對象封裝器轉(zhuǎn)化為對象
    s.equals("true");
    /* 其中,toString方法是一個(gè)繼承方法。java中所有的類都是object的繼承,object的一個(gè)重要方法就是toString,用于將對象轉(zhuǎn)化為字符串。*/

    第二種方法是:

    boolean bool = true;
    String s = String.valueOf( bool );

    首先,從代碼長度上講第二種方法明顯要比第一種方法簡潔;其次,第一種方法在轉(zhuǎn)化過程中多引入了一個(gè)完全沒有必要的對象,因此,相對第二種方法來說這就造成了內(nèi)存空間的浪費(fèi),大大減慢了運(yùn)行速度。所以,推薦使用第二種方法。

    10 數(shù)字類型與數(shù)字類對象之間的轉(zhuǎn)換
    byte b = 169;
    Byte bo = new Byte( b );
    b = bo.byteValue();

    short t = 169;
    Short to = new Short( t );
    t = to.shortValue();

    int i = 169;
    Integer io = new Integer( i );
    i = io.intValue();

    long l = 169;
    Long lo = new Long( l );
    l = lo.longValue();

    float f = 169f;
    Float fo = new Float( f );
    f = fo.floatValue();

    double d = 169f;
    Double dObj = new Double( d );
    d = dObj.doubleValue();




    java二進(jìn)制,字節(jié)數(shù)組,字符,十六進(jìn)制,BCD編碼轉(zhuǎn)換2007-06-07 00:17/**
        * 把16進(jìn)制字符串轉(zhuǎn)換成字節(jié)數(shù)組
        * 
    @param hex
        * 
    @return
        
    */

    public static byte[] hexStringToByte(String hex) {
        
    int len = (hex.length() / 2);
        
    byte[] result = new byte[len];
        
    char[] achar = hex.toCharArray();
        
    for (int i = 0; i < len; i++{
         
    int pos = i * 2;
         result[i] 
    = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));
        }

        
    return result;
    }


    private static byte toByte(char c) {
        
    byte b = (byte"0123456789ABCDEF".indexOf(c);
        
    return b;
    }


    /**
        * 把字節(jié)數(shù)組轉(zhuǎn)換成16進(jìn)制字符串
        * 
    @param bArray
        * 
    @return
        
    */

    public static final String bytesToHexString(byte[] bArray) {
        StringBuffer sb 
    = new StringBuffer(bArray.length);
        String sTemp;
        
    for (int i = 0; i < bArray.length; i++{
         sTemp 
    = Integer.toHexString(0xFF & bArray[i]);
         
    if (sTemp.length() < 2)
          sb.append(
    0);
         sb.append(sTemp.toUpperCase());
        }

        
    return sb.toString();
    }


    /**
        * 把字節(jié)數(shù)組轉(zhuǎn)換為對象
        * 
    @param bytes
        * 
    @return
        * 
    @throws IOException
        * 
    @throws ClassNotFoundException
        
    */

    public static final Object bytesToObject(byte[] bytes) throws IOException, ClassNotFoundException {
        ByteArrayInputStream in 
    = new ByteArrayInputStream(bytes);
        ObjectInputStream oi 
    = new ObjectInputStream(in);
        Object o 
    = oi.readObject();
        oi.close();
        
    return o;
    }


    /**
        * 把可序列化對象轉(zhuǎn)換成字節(jié)數(shù)組
        * 
    @param s
        * 
    @return
        * 
    @throws IOException
        
    */

    public static final byte[] objectToBytes(Serializable s) throws IOException {
        ByteArrayOutputStream out 
    = new ByteArrayOutputStream();
        ObjectOutputStream ot 
    = new ObjectOutputStream(out);
        ot.writeObject(s);
        ot.flush();
        ot.close();
        
    return out.toByteArray();
    }


    public static final String objectToHexString(Serializable s) throws IOException{
        
    return bytesToHexString(objectToBytes(s));
    }


    public static final Object hexStringToObject(String hex) throws IOException, ClassNotFoundException{
        
    return bytesToObject(hexStringToByte(hex));
    }


    /**
        * @函數(shù)功能: BCD碼轉(zhuǎn)為10進(jìn)制串(阿拉伯?dāng)?shù)據(jù))
        * @輸入?yún)?shù): BCD碼
        * @輸出結(jié)果: 10進(jìn)制串
        
    */

    public static String bcd2Str(byte[] bytes){
        StringBuffer temp
    =new StringBuffer(bytes.length*2);

        
    for(int i=0;i<bytes.length;i++){
         temp.append((
    byte)((bytes[i]& 0xf0)>>>4));
         temp.append((
    byte)(bytes[i]& 0x0f));
        }

        
    return temp.toString().substring(0,1).equalsIgnoreCase("0")?temp.toString().substring(1):temp.toString();
    }


    /**
        * @函數(shù)功能: 10進(jìn)制串轉(zhuǎn)為BCD碼
        * @輸入?yún)?shù): 10進(jìn)制串
        * @輸出結(jié)果: BCD碼
        
    */

    public static byte[] str2Bcd(String asc) {
        
    int len = asc.length();
        
    int mod = len % 2;

        
    if (mod != 0{
         asc 
    = "0" + asc;
         len 
    = asc.length();
        }


        
    byte abt[] = new byte[len];
        
    if (len >= 2{
         len 
    = len / 2;
        }


        
    byte bbt[] = new byte[len];
        abt 
    = asc.getBytes();
        
    int j, k;

        
    for (int p = 0; p < asc.length()/2; p++{
         
    if ( (abt[2 * p] >= '0'&& (abt[2 * p] <= '9')) {
          j 
    = abt[2 * p] - '0';
         }
     else if ( (abt[2 * p] >= 'a'&& (abt[2 * p] <= 'z')) {
          j 
    = abt[2 * p] - 'a' + 0x0a;
         }
     else {
          j 
    = abt[2 * p] - 'A' + 0x0a;
         }


         
    if ( (abt[2 * p + 1>= '0'&& (abt[2 * p + 1<= '9')) {
          k 
    = abt[2 * p + 1- '0';
         }
     else if ( (abt[2 * p + 1>= 'a'&& (abt[2 * p + 1<= 'z')) {
          k 
    = abt[2 * p + 1- 'a' + 0x0a;
         }
    else {
          k 
    = abt[2 * p + 1- 'A' + 0x0a;
         }


         
    int a = (j << 4+ k;
         
    byte b = (byte) a;
         bbt[p] 
    = b;
        }

        
    return bbt;
    }

    /**
        * @函數(shù)功能: BCD碼轉(zhuǎn)ASC碼
        * @輸入?yún)?shù): BCD串
        * @輸出結(jié)果: ASC碼
        
    */

    public static String BCD2ASC(byte[] bytes) {
        StringBuffer temp 
    = new StringBuffer(bytes.length * 2);

        
    for (int i = 0; i < bytes.length; i++{
         
    int h = ((bytes[i] & 0xf0>>> 4);
         
    int l = (bytes[i] & 0x0f);   
         temp.append(BToA[h]).append( BToA[l]);
        }

        
    return temp.toString() ;
    }


    /**
        * MD5加密字符串,返回加密后的16進(jìn)制字符串
        * 
    @param origin
        * 
    @return
        
    */

    public static String MD5EncodeToHex(String origin) 
           
    return bytesToHexString(MD5Encode(origin));
         }


    /**
        * MD5加密字符串,返回加密后的字節(jié)數(shù)組
        * 
    @param origin
        * 
    @return
        
    */

    public static byte[] MD5Encode(String origin){
        
    return MD5Encode(origin.getBytes());
    }


    /**
        * MD5加密字節(jié)數(shù)組,返回加密后的字節(jié)數(shù)組
        * 
    @param bytes
        * 
    @return
        
    */

    public static byte[] MD5Encode(byte[] bytes){
        MessageDigest md
    =null;
        
    try {
         md 
    = MessageDigest.getInstance("MD5");
         
    return md.digest(bytes);
        }
     catch (NoSuchAlgorithmException e) {
         e.printStackTrace();
         
    return new byte[0];
        }

      
    }

    //關(guān)于byte:    signed byte 把 0x00 ~ 0xff 映射成范圍 0~127和 -128~-1    兩段,比較簡單的辦法用 (b+256)%256的辦法令其值回到0~255,或者用&0xff并賦給一個(gè)int。參考http://www.jsfsoft.com:8080/beyond-pebble/pinxue/2006/08/23/1156309692525.html 

    posted on 2007-10-08 18:04 leoli 閱讀(1036) 評論(0)  編輯  收藏 所屬分類: java

    導(dǎo)航

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案(17)

    文章分類(86)

    收藏夾(3)

    flex blog

    good site

    java blog

    my friend

    tools

    抓蝦

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久91亚洲精品中文字幕| 亚洲综合另类小说色区色噜噜| 国外成人免费高清激情视频| 无码国模国产在线观看免费| 四虎影视永久免费观看| 国产亚洲精品美女久久久| 亚洲美女视频网址| 亚洲精品永久在线观看| 四虎国产精品成人免费久久 | 很黄很黄的网站免费的| 最近最好的中文字幕2019免费| 亚洲av区一区二区三| 亚洲AV无码成人精品区在线观看 | 亚洲av永久无码精品漫画| 亚洲免费观看在线视频| 精品成人一区二区三区免费视频| 久久免费观看视频| 国产大片91精品免费观看不卡| 国产精品无码一区二区三区免费 | 亚洲综合亚洲综合网成人| 久久久久久亚洲精品成人| 无码一区二区三区亚洲人妻 | 特色特黄a毛片高清免费观看| 一区二区三区福利视频免费观看| 韩国日本好看电影免费看| 亚洲日韩精品一区二区三区| 亚洲人配人种jizz| 国产精品hd免费观看| 很黄很黄的网站免费的| 怡红院亚洲怡红院首页| 国产精品亚洲片在线va| 国产又黄又爽又大的免费视频| 国产电影午夜成年免费视频| 亚洲国产精品综合久久网络| 亚洲日本国产精华液| 久久精品免费网站网| 成人片黄网站A毛片免费| 国产精一品亚洲二区在线播放| 国产婷婷综合丁香亚洲欧洲| 国产在线精品观看免费观看| 成人免费无码大片a毛片软件|