java部分基础类型及时间格式的数据格式相互转换方法整理
来源:互联网 发布:安泰管理学院知乎 编辑:程序博客网 时间:2024/06/04 18:15
目录
- 目录
- 1LonglongIntegerint之间的恩怨情仇
- StringintLongbyteByteDoublefloatcharDate令人发指的纠缠
- 区别是转来的原理未进行验证
注意:本次整理涉及到的数据结构:
Long,long,Integer,int,String,Byte,byte,Double,float,Bigdecimal,Date,char和boolean类型待日后闲暇时整理,以下部分或许有不全面的地方,欢迎补充。
1、Long,long,Integer,int之间的恩怨情仇
long和int相对于Long和Integer的关系其实是基础类与java封装类的关系,在用的时候java语言会把封装的这两种基础数据类型当作类处理,所以一种简单的处理方式就是通过数据类型的转换再与封装数据类进行互转得到需要的数据类型。一下列出一些经典的数据转换,每列出来的也许是笔者觉得不需要写或者忘记了。
1.1 int转Long
int是基础类型,Long是封装数据类型,因此强转是行不通的,编译就通不过,这种情况提供一种比较简单的处理方式:
int a=1234;
Long b=(long)a;
解释: java语言中基础数据类型一般是可以强转的,这里的int先强转成long基础类型,然后再java的默认机制下long会被‘=’式转为Long封装数据类型。
另一种方法是通过封装类提供的方法,不过有时候会有一些问题:
int a=1234;
Long b=Long.IntValue(a);1.2 Long转int
基本原理相同,就是利用基本数据类型的强转机制以及java5以后的自动拆装箱机制实现数据类型的转换。如下:
Long ss=5L;
int sss=(long)ss;
另一种方法:
Long ss = 5L;
String str =ss.toString();
int sss = (int)Integer.valueOf(str);
或者 int sss = (int)new Integer(str);第二种方法比较麻烦。其他互转原理相同。
2. String,int,Long,byte,Byte,Double,float,char,Date令人发指的纠缠
- 2.1:String与int互转
2.1.1 String转int
int i = Integer.parseInt([String]);
或
i = Integer.parseInt([String],[int radix]);
或
int i = Integer.valueOf(my_str).intValue();注: 字串转成 Double, Float, Long 的方法大同小异.
2.1.2 int转String
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = “” + i;
注: Double, Float, Long 转成字串的方法大同小异.
区别:
int -> String
int i=12345;
String s=”“;
第一种方法:s=i+”“;
第二种方法:s=String.valueOf(i);
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
String -> int
s=”12345”;
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
以下是答案:
第一种方法:s=i+”“; //会产生两个String对象
第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象
第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛
异常,但会多产生一个对象
(区别是转来的,原理未进行验证)
2.2 :String与byte互转
byte[] srtbyte = str.getBytes();//String–>byte[]
String res = new String(srtbyte);//byte[]–>String2.3 :String与Date互转
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String date="2011-11-22 12:32:43"Date date = format.parse(date);
2.4 :float转BigDecimal
DecimalFormat myformat = new DecimalFormat("0.000");//指定BigDecimal格式,可以不写String x=2.1;String y=1.2;float xx = Float.parseFloat(x);float yy = Float.parseFloat(y);BigDecimal xxx = new BigDecimal(myformat.format(xx));BigDecimal yyy = new BigDecimal(myformat.format(yy));
备注:待续
- java部分基础类型及时间格式的数据格式相互转换方法整理
- Java时间格式的相互转换
- java 数据格式相互转换
- 个人备忘--时间格式的相互转换
- iOS时间格式的相互转换
- Python- 时间格式的相互转换
- python时间戳于时间格式字符串相互转换的方法
- Java中时间戳转换成时间格式的方法
- java中一些数据格式判断、转换的方法(手机号、邮箱格式,byte数组转String)
- Java、MySql中时间类型与字符串类型的相互转换
- JAVA使用jodatime进行date类型与string类型的时间相互转换
- 文章标题java获取时间的方法及Date与String类型的转换
- js 时间格式与时间戳的相互转换
- 时间戳与时间格式的相互转换
- Java中常用的一种时间格式的转换方法
- Java中日期时间格式与毫秒数的相互转换
- 数据格式之间与类型之间的转换方法
- Oracle格式转换(varchar2类型的时间格式转换)
- Android 案例---SQLite数据库的学习
- Linux——ubuntu硬盘分区
- caffe训练加BN层的网络时loss为87.3365的问题解决办法
- myeclipse struts2环境配置(入门教程)
- 将查询信息整合成一个实体类
- java部分基础类型及时间格式的数据格式相互转换方法整理
- 55.JVM调优之原理概述以及降低cache操作的内存占比
- 安装anaconda及pycharm 启动Jupyter
- 文奇的无聊实习日记之数据结构篇-ch1(番外)算法概要(考生福利)
- win7 64bit visual studio 2013环境 PCL 的安装与配置
- 1-线程的实现与状态
- Ubuntu
- Material适配
- web加载有的URL时会发生-999的报错