幾種常見的數據類型轉換

幾種常見的數據類型轉換,記錄一下 javascript

        1、Timestap與String  BigDecimal與String

        項目使用的數據庫Oracle,字段類型爲Date與Number,ORM框架爲Mybatis,返回類型和參數類型均爲         java.util.Map,此時方法返回的Map {END_DATE=2012-11-11 14:39:35.0, FLAG=0} ,本覺得(String)map.get(""),直接轉換爲String類型,最後報錯了,爲了保證代碼健壯,強制類型轉換時能夠使用instance of判段類型 java

    

        Timestap轉String sql

Java代碼     收藏代碼
  1. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
  2. java.sql.Timestamp ts= (java.sql.Timestamp) map.get("END_DATE");  
  3. String endDate=sdf.format(ts);  

 

        String轉化爲Timestamp 數據庫

   

Java代碼     收藏代碼
  1. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  2. String time = sdf.format(new Date());  
  3. Timestamp ts = Timestamp.valueOf(time);  

     

        BigDecimal轉String 數組

當valueOf()和toString()返回相同結果時,寧願使用前者 app

由於調用null對象的toString()會拋出空指針異常,若是咱們可以使用valueOf()得到相同的值,那寧願使用valueOf(),傳遞一個null給valueOf()將會返回「null」,尤爲是在那些包裝類,像Integer、Float、Double和BigDecimal。      框架

Java代碼     收藏代碼
  1. java.math.BigDecimal bd = (BigDecimal)m1.get("FLAG");  
  2. String flag = bd.toString();  //  
  3. 若是bd爲null拋出 "Exception in thread "main" java.lang.NullPointerException"  
  4.   
  5. String flag = String.valueOf(bd);  

 

        String轉BigDecimal spa

   

Java代碼     收藏代碼
  1. BigDecimal bd = new BigDecimal("10");  

    

        2、Date與String之間的轉換

 

        String轉Date     指針

Java代碼     收藏代碼
  1. DateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
  2. Date date = null;String str = null;  
  3. str = "2010-10-10";  
  4. date = format.parse(str); //Sun Oct 10 00:00:00 CST 2010  
  5. date = java.sql.Date.valueOf(str); //返回的是java.sql.Date 2010-10-10  

 

        Date轉String code

    

Java代碼     收藏代碼
  1. DateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
  2. Date date = null;String str = null;  
  3. date = new Date();   
  4. str = format.format(date);   

        省略了異常處理部分

 

        把字符串轉化爲java.sql.Date

        字符串必須是"yyyy-mm-dd"格式,不然會拋出IllegalArgumentException異常

    java.sql.Date sdt=java.sql.Date.valueOf("2010-10-10");

 

 

3、文件與byte數組的相互轉換

 

全部的文件在硬盤或在傳輸時都是以字節的形式傳輸的

 

文件轉byte[]

 

Java代碼     收藏代碼
  1. public static void readFile() throws Exception {  
  2.         FileInputStream fis = new FileInputStream("luffy.gif");  
  3.         BufferedInputStream bis = new BufferedInputStream(fis);  
  4.         ByteArrayOutputStream baos = new ByteArrayOutputStream();  
  5.         int num = bis.read();  
  6.         while (num != -1) {  
  7.             baos.write(num);  
  8.         }  
  9.         bis.close();  
  10.         byte[] array = baos.toByteArray();  
  11.         System.out.println(array.toString());  
  12.           
  13.     }  

 

byte[] 轉文件

 

Java代碼     收藏代碼
  1. public static void writeFile(byte[] array) throws Exception{  
  2.         FileOutputStream fos =new FileOutputStream("one.gif");  
  3.         BufferedOutputStream bos =new BufferedOutputStream(fos);  
  4.         bos.write(array);  
  5.         bos.close();  
  6.         System.out.println("success");  
  7.     }  

 

 

 byte與16進制字符串轉換

Java代碼     收藏代碼
  1. public static String byte2hex(byte[] b) {  
  2.        String hs = "";    
  3.        String stmp = "";    
  4.        for (int n = 0; n < b.length; n++) {    
  5.         stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));    
  6.         if (stmp.length() == 1)    
  7.          hs = hs + "0" + stmp;    
  8.         else    
  9.          hs = hs + stmp;    
  10.        }    
  11.        return hs;    
  12.     }    
  13.     
  14.     public static byte[] hex2byte(String str) {    
  15.        if (str == null)    
  16.         return null;    
  17.        str = str.trim();    
  18.        int len = str.length();    
  19.        if (len == 0 || len % 2 == 1)    
  20.         return null;    
  21.         
  22.        byte[] b = new byte[len / 2];    
  23.        try {    
  24.         for (int i = 0; i < str.length(); i += 2) {    
  25.          b[i / 2] = (byte) Integer    
  26.            .decode("0x" + str.substring(i, i + 2)).intValue();    
  27.         }    
  28.         return b;    
  29.        } catch (Exception e) {    
  30.         return null;    
  31.        }    
  32.     }    
相關文章
相關標籤/搜索