`

几种常见的数据类型转换(一)------String转其他类型

    博客分类:
  • JAVA
阅读更多

常用数据类型转换:

1.String 数据类型

<1> String-------->int

 

    
       /**
    	 * function1
    	 */
       String str0 = "123";
    	try {
    	    int a = Integer.parseInt(str0);
    	} catch (NumberFormatException e) {
    	    e.printStackTrace();
    	}
       /**
    	 * function2
    	 */ 
    	String str1 = "234";
    	try {
    	    int b = Integer.valueOf(str1).intValue();
    	} catch (NumberFormatException e) {
    	    e.printStackTrace();
    	}

 在转换过程中需要注意,因为字符串中可能会出现非数字的情况,所以在转换的时候需要捕捉处理异常

 

<2>String-------->long

       /**
    	 * function1
    	 */ 
	String str0 ="123";
    	try {
		long l1 = Long.parseLong(str0);
    	} catch (NumberFormatException e) {
    	    e.printStackTrace();
    	}
       /**
    	 * function2
    	 */ 
		String str1 = "234";
		try {
		long l2 = Long.parseLong(str1,3);
		} catch (NumberFormatException e) {
    	    e.printStackTrace();
    	}
       /**
    	 * function3
    	 */ 
		String str2 = "456";
		try {
		long l3 = Long.valueOf("123").longValue();
		} catch (NumberFormatException e) {
	    e.printStackTrace();
		}

         Long.ValueOf("String")返回Long包装类型
       
        Long.parseLong("String")返回long基本数据类型

 

 

<3>String-------->double

 

         double db;  
    	 String str;  
    	 str = "6.12345";  
    	   try {  
        /**
    	  * function1
    	  */ 
    	    db = new Double(str).doubleValue();//xxxValue() method  
    	    //Returns a new double initialized to the value represented  
    	    //by the specified String 
       /**
    	 * function2
    	 */ 
    	    db = Double.parseDouble(str); 
       /**
    	 * function3
    	 */ 
    	    db = Double.valueOf(str).doubleValue();//doubleValue() method  
    	   } catch (Exception e) {  
    	    e.printStackTrace();  
    	   }

 

<4>String-------->date

      /**
    	 * function1
    	 */ 
       String dateString = "2017-7-26 ";  
        try  
        {  
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");  
            Date date = sdf.parse(dateString);  
        }  
        catch (ParseException e)  
        {  
            System.out.println(e.getMessage());  
        }
       /**
    	 * function2
    	 */ 
        import java.text.ParseException;  
        import java.text.SimpleDateFormat;  
        import java.util.Calendar;  
        import java.util.Date;  
          
        import org.apache.commons.lang.StringUtils;  
          
        /** 
         * 日期Util类 
         *  
         * @author calvin 
         */  
        public class DateUtil  
        {  
            private static String defaultDatePattern = "yyyy-MM-dd ";  
          
       /** 
         * 获得默认的 date pattern 
         */ 
            public static String getDatePattern()  
            {  
                return defaultDatePattern;  
            }  
        /** 
         * 返回预设Format的当前日期字符串 
         */  
            public static String getToday()  
            {  
                Date today = new Date();  
                return format(today);  
            }  
       /** 
         * 使用预设Format格式化Date成字符串 
         */  
            public static String format(Date date)  
            {  
                return date == null ? " " : format(date, getDatePattern());  
            }  
       /** 
         * 使用参数Format格式化Date成字符串 
         */  
            public static String format(Date date, String pattern)  
            {  
                return date == null ? " " : new SimpleDateFormat(pattern).format(date);  
            }  
       /** 
         * 使用预设格式将字符串转为Date 
         */
            public static Date parse(String strDate) throws ParseException  
            {  
                return StringUtils.isBlank(strDate) ? null : parse(strDate,  
                        getDatePattern());  
            }  
          
       /** 
         * 使用参数Format将字符串转为Date 
         */
            public static Date parse(String strDate, String pattern)  
                    throws ParseException  
            {  
                return StringUtils.isBlank(strDate) ? null : new SimpleDateFormat(  
                        pattern).parse(strDate);  
            }  
          
       /** 
         * 在日期上增加数个整月 
         */
            public static Date addMonth(Date date, int n)  
            {  
                Calendar cal = Calendar.getInstance();  
                cal.setTime(date);  
                cal.add(Calendar.MONTH, n);  
                return cal.getTime();  
            }  
          
            public static String getLastDayOfMonth(String year, String month)  
            {  
                Calendar cal = Calendar.getInstance();  
                // 年  
                cal.set(Calendar.YEAR, Integer.parseInt(year));  
                // 月,因为Calendar里的月是从0开始,所以要-1  
                // cal.set(Calendar.MONTH, Integer.parseInt(month) - 1);  
                // 日,设为一号  
                cal.set(Calendar.DATE, 1);  
                // 月份加一,得到下个月的一号  
                cal.add(Calendar.MONTH, 1);  
                // 下一个月减一为本月最后一天  
                cal.add(Calendar.DATE, -1);  
                return String.valueOf(cal.get(Calendar.DAY_OF_MONTH));// 获得月末是几号  
            }  
          
            public static Date getDate(String year, String month, String day)  
                    throws ParseException  
            {  
                String result = year + "- "  
                        + (month.length() == 1 ? ("0 " + month) : month) + "- "  
                        + (day.length() == 1 ? ("0 " + day) : day);  
                return parse(result);  
            }  
        } 

 

分享到:
评论
1 楼 阿拉扫思密达 2017-07-26  
转自:http://swordshadow.iteye.com/blog/1927685
java 常用的几种数据类型转换

    博客分类: java

java

几种常见的数据类型转换,记录一下
      
一、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判段类型

   

        Timestap转String
Java代码  收藏代码

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    java.sql.Timestamp ts= (java.sql.Timestamp) map.get("END_DATE"); 
    String endDate=sdf.format(ts); 



        String转化为Timestamp

  
Java代码  收藏代码

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    String time = sdf.format(new Date()); 
    Timestamp ts = Timestamp.valueOf(time); 

    

        BigDecimal转String

当valueOf()和toString()返回相同结果时,宁愿使用前者

因为调用null对象的toString()会抛出空指针异常,如果我们能够使用valueOf()获得相同的值,那宁愿使用valueOf(),传递一个null给valueOf()将会返回“null”,尤其是在那些包装类,像Integer、Float、Double和BigDecimal。    
Java代码  收藏代码

    java.math.BigDecimal bd = (BigDecimal)m1.get("FLAG"); 
    String flag = bd.toString();  // 
    如果bd为null抛出 "Exception in thread "main" java.lang.NullPointerException" 
     
    String flag = String.valueOf(bd); 



        String转BigDecimal

  
Java代码  收藏代码

    BigDecimal bd = new BigDecimal("10"); 

   

   String 去掉换行



   
Java代码  收藏代码

    str.replaceAll("\n\r","").replaceAll("\n",""); 


java去除字符串中的空格、回车、换行符、制表符




        二、Date与String之间的转换



        String转Date   
Java代码  收藏代码

    DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
    Date date = null;String str = null; 
    str = "2010-10-10"; 
    date = format.parse(str); //Sun Oct 10 00:00:00 CST 2010 
    date = java.sql.Date.valueOf(str); //返回的是java.sql.Date 2010-10-10 



        Date转String

   
Java代码  收藏代码

    DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
    Date date = null;String str = null; 
    date = new Date();  
    str = format.format(date);  

        省略了异常处理部分



        把字符串转化为java.sql.Date

        字符串必须是"yyyy-mm-dd"格式,否则会抛出IllegalArgumentException异常

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





三、文件与byte数组的相互转换



所有的文件在硬盘或在传输时都是以字节的形式传输的



文件转byte[]


Java代码  收藏代码

    public static void readFile() throws Exception { 
            FileInputStream fis = new FileInputStream("luffy.gif"); 
            BufferedInputStream bis = new BufferedInputStream(fis); 
            ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
            int num = bis.read();                 //可能会溢出  超过int最大值  Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 
            while (num != -1) { 
                baos.write(num); 
            } 
            bis.close(); 
            byte[] array = baos.toByteArray(); 
            System.out.println(array.toString()); 
             
        } 
     
    //推荐 
     
     
    FileInputStream in = new FileInputStream(new File("d:/one.gif"));   
             ByteArrayOutputStream out = new ByteArrayOutputStream(4096);   
             byte[] b = new byte[4096];   
             int n;   
             while ((n = in.read(b)) != -1) {   
                 out.write(b, 0, n);   
             }   
             in.close();   
             out.close();   
             byte[] ret = out.toByteArray(); 



byte[] 转文件


Java代码  收藏代码

    public static void writeFile(byte[] array) throws Exception{ 
            FileOutputStream fos =new FileOutputStream("one.gif"); 
            BufferedOutputStream bos =new BufferedOutputStream(fos); 
            bos.write(array); 
            bos.close(); 
            System.out.println("success"); 
        } 



文件与 String 的转换


Java代码  收藏代码

    /** 
           * 文本文件转换为指定编码的字符串 
           * 
           * @param file         文本文件 
           * @param encoding 编码类型 
           * @return 转换后的字符串 
           * @throws IOException 
           */  
          public static String file2String(File file, String encoding) {  
                  InputStreamReader reader = null;  
                  StringWriter writer = new StringWriter();  
                  try {  
                          if (encoding == null || "".equals(encoding.trim())) {  
                                  reader = new InputStreamReader(new FileInputStream(file), encoding);  
                          } else {  
                                  reader = new InputStreamReader(new FileInputStream(file));  
                          }  
                          //将输入流写入输出流  
                          char[] buffer = new char[1024];  
                          int n = 0;  
                          while (-1 != (n = reader.read(buffer))) {  
                                  writer.write(buffer, 0, n);  
                          }  
                  } catch (Exception e) {  
                          e.printStackTrace();  
                          return null;  
                  } finally {  
                          if (reader != null)  
                                  try {  
                                          reader.close();  
                                  } catch (IOException e) {  
                                          e.printStackTrace();  
                                  }  
                  }  
                  //返回转换结果  
                  if (writer != null)  
                          return writer.toString();  
                  else return null;  
          } 



String 与 File 的转换


Java代码  收藏代码

    /** 
            * 将字符串写入指定文件(当指定的父路径中文件夹不存在时,会最大限度去创建,以保证保存成功!) 
            * 
            * @param res            原字符串 
            * @param filePath 文件路径 
            * @return 成功标记 
            */  
           public static boolean string2File(String res, String filePath) {  
                   boolean flag = true;  
                   BufferedReader bufferedReader = null;  
                   BufferedWriter bufferedWriter = null;  
                   try {  
                           File distFile = new File(filePath);  
                           if (!distFile.getParentFile().exists()) distFile.getParentFile().mkdirs();  
                           bufferedReader = new BufferedReader(new StringReader(res));  
                           bufferedWriter = new BufferedWriter(new FileWriter(distFile));  
                           char buf[] = new char[1024];         //字符缓冲区  
                           int len;  
                           while ((len = bufferedReader.read(buf)) != -1) {  
                                   bufferedWriter.write(buf, 0, len);  
                           }  
                           bufferedWriter.flush();  
                           bufferedReader.close();  
                           bufferedWriter.close();  
                   } catch (IOException e) {  
                           e.printStackTrace();  
                           flag = false;  
                           return flag;  
                   } finally {  
                           if (bufferedReader != null) {  
                                   try {  
                                           bufferedReader.close();  
                                   } catch (IOException e) {  
                                           e.printStackTrace();  
                                   }  
                           }  
                   }  
                   return flag;  
           } 









byte与16进制字符串转换


Java代码  收藏代码

    public static String byte2hex(byte[] b) { 
           String hs = "";   
           String stmp = "";   
           for (int n = 0; n < b.length; n++) {   
            stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));   
            if (stmp.length() == 1)   
             hs = hs + "0" + stmp;   
            else   
             hs = hs + stmp;   
           }   
           return hs;   
        }   
       
        public static byte[] hex2byte(String str) {   
           if (str == null)   
            return null;   
           str = str.trim();   
           int len = str.length();   
           if (len == 0 || len % 2 == 1)   
            return null;   
           
           byte[] b = new byte[len / 2];   
           try {   
            for (int i = 0; i < str.length(); i += 2) {   
             b[i / 2] = (byte) Integer   
               .decode("0x" + str.substring(i, i + 2)).intValue();   
            }   
            return b;   
           } catch (Exception e) {   
            return null;   
           }   
        }   



InputStream 转化为 byte[]


Java代码  收藏代码

    public static byte[] readStream(InputStream is) throws Exception{   
            byte[] bytes = new byte[1024];   
            int leng;   
            ByteArrayOutputStream baos = new ByteArrayOutputStream();   
            while((leng=is.read(bytes)) != -1){   
                baos.write(bytes, 0, leng);   
            }   
            return baos.toByteArray();   
        }   



图像文件转byte[]
Java代码  收藏代码

    public static byte[] toByteArray(File file) throws Exception { 
        BufferedImage img = ImageIO.read(file); 
        ByteArrayOutputStream buf = new ByteArrayOutputStream((int) file.length()); 
        try { 
            ImageIO.write(img, "", buf); 
        } catch (Exception e) { 
            e.printStackTrace(); 
            return null; 
        } 
        return buf.toByteArray(); 
    } 









四、byte[]与base64转换



BASE64应用广泛,在很多API中参数设计为String,可以将base64转为String 方便调用


Java代码  收藏代码

    //方法一 
    sun.misc.BASE64Decoder dec = new BASE64Decoder(); 
    sun.misc.BASE64Encoder enc = new BASE64Encoder(); 
      
    //javax.xml.bind.DatatypeConverter it has 2 methods of interest: 
    //方法二  
    public static byte[] parseBase64Binary( String lexicalXSDBase64Binary ) 
    public static String printBase64Binary( byte[] val ) 





可用于图片显示  <img alt="" src="data:image/png;base64,base64String...."> ,关于base64图片参考:html img Src base64 图片显示



注意两种方式生成的字符串长度不同,很多第三方的 jar 也含有 base64 功能,可能存在差异, 在项目中要统一为一种方式





     As of v6, Java SE ships with JAXB. javax.xml.bind.DatatypeConverter has static methods that make this easy. See parseBase64Binary() and printBase64Binary().



      Decode Base64 data in Java



    有时候需要去掉特殊字符如:



        
Java代码  收藏代码

    uploadImgMap.put("FILE",enc.encode(fileByte).replaceAll("(\r\n|\n)", "")) ;  //伪代码 





    五,json 与 xml 互相转换

  

   字符串转json


Java代码  收藏代码

    String str = "{ \"data\": \"{a:1,b:2}\" }"; 
    JSONObject json = (JSONObject)JSONSerializer.toJSON(str); 

相关推荐

    Java中几种常用数据类型之间转换的方法

    Java 中几种常用数据类型之间转换的方法 Java 是一种基于对象的编程语言,它支持多种数据类型之间的转换,这些转换在实际编程...但是,需要注意的是,在进行数据类型转换时,需要考虑到可能出现的精度丢失和溢出问题。

    java数据类型的转换简单数据类型之间的转换 (2). 字符串与其它数据类型的转换 (3). 其它实用数据类型转换

    一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问下面笔者就开发中的一些体会介绍给大家。 我们知道,...

    javascript最常用数据类型转换(最全).doc

    JavaScript 数据类型转换详解 JavaScript 中有多种数据类型,包括数值类型、字符串类型、布尔类型等。这些类型之间可以进行转换,以下是 JavaScript 中最常用的数据类型转换方法。 一、转为字符串 在 JavaScript ...

    C#数据类型转换

    在 C# 编程语言中,数据类型转换是一项非常重要的功能,它可以帮助开发者灵活地处理不同类型的数据。数据类型转换主要包括数值与字符串之间的转换,这一点在日常开发工作中尤为常见。 #### 数值转字符串 数值类型...

    list转换成string数组

    在Java编程语言中,经常需要将`List&lt;String&gt;`类型的数据转换为`String[]`数组类型,以便于进行某些特定的操作或适应某些方法的要求。本文将详细探讨这一转换过程,并通过几个具体的示例来帮助理解。 #### 一、基础...

    JAVA数据类型转换.pdf

    Java中的数据类型转换大致可以分为以下几种: 1. **简单数据类型之间的转换** 2. **字符串与其它数据类型的转换** 3. **其他实用数据类型转换** 接下来将对这些转换类型逐一进行探讨。 #### 四、简单数据类型之间...

    Date类型数据转换

    Date类型数据转换是Java编程语言中非常重要的一种数据类型转换。它可以将String类型的日期字符串转换为Date类型的日期对象,也可以将Date类型的日期对象转换为String类型的日期字符串。在本文中,我们将详细介绍Date...

    struts2数据类型转换

    在Struts2中,数据类型转换的意义主要体现在以下几个方面: 1. **确保数据一致性**:通过类型转换,可以确保服务器接收到的数据与业务逻辑层中对象的属性类型保持一致,避免因类型不匹配导致的运行时错误。 2. **...

    C# 与 C++ 数据类型比较及结构体转换

    在进行C#与C++之间的数据类型转换时,通常需要考虑以下几种情况: 1. **基本数据类型**:例如整型、浮点型等。 2. **指针与引用**:在C++中广泛使用的指针类型,在C#中主要通过引用(`ref`)或原生指针(`IntPtr`)...

    常用类型转换扩展_C#_扩展_类型转换_

    在C#编程中,类型转换是开发者经常遇到的操作,它涉及到不同数据类型的相互转化。本文将深入探讨C#中常见的类型转换扩展,并介绍如何通过扩展方法来增强类型转换的便捷性和可读性。 首先,我们要了解C#内置的类型...

    java数据类型转换

    ### Java数据类型转换详解 #### 引言 在Java编程中,经常需要对不同数据类型进行转换以满足程序运行的需求。本文将详细介绍Java中的几种常见数据类型及其转换方法,并给出具体的示例代码。 #### 字符串(String)与...

    java数据类型转换.pdf

    在Java中,数据类型转换主要有以下几种: 1. **简单数据类型之间的转换** - **自动类型转换**:低级别数据类型(如byte、short、char)可以自动转换为高级别数据类型(如int、long、float、double)。例如,`byte ...

    c#中的数型类型转换大全

    在C#中,类型转换指的是将一种数据类型的值转换为另一种数据类型的过程。这可以通过编译器自动进行(隐式转换)或通过程序员显式指定(显式转换)。数型类型转换主要涉及数值类型,如整型(int, long, short等)和浮点...

    自测试卷4.doc1.为什么在C#中我们不用担心内存漏洞? 2.写出数据类型转换(至少4种)的方法,代码举例。

    * 数据类型转换是指将一种数据类型转换为另一种数据类型。常见的数据类型转换有以下几种: 1. 显式转换(Explicit Conversion):使用强制转换符号()进行转换。 2. 隐式转换(Implicit Conversion):系统自动...

    c#数据类型转换详解

    C#提供了多种方式进行数据类型转换,主要包括以下几种: 1. **隐式转换**:当从较小的数据类型转换为较大的数据类型时,编译器会自动完成转换,无需显式指定转换操作。例如: ```csharp int i = 10; long l = i;...

    js 数据类型转换总结笔记

    在JavaScript中,数据类型转换是编程过程中不可或缺的一部分。由于JavaScript是一种动态类型语言,变量的数据类型在运行时可以改变,这给编程带来了灵活性,但也可能导致一些意外的错误。本篇文章将深入探讨...

    PHP数据类型转换

    在实际编程中,数据类型转换是不可避免的,特别是在处理不同来源的数据时。 ### 一、自动类型转换 PHP中存在自动类型转换,这是语言特性之一,意味着在某些情况下,PHP会自动将一个变量从一种类型转换为另一种类型...

    c++常用变量类型的转换

    在C++编程中,数据类型转换是非常常见的操作,它有助于程序员更加灵活地处理各种数据。本文将详细介绍C++中几种常见数据类型之间的转换方法,帮助读者更好地理解和掌握这些技巧。 #### 标题:C++常用变量类型的转换...

Global site tag (gtag.js) - Google Analytics