title: Java字符串和数字间的转换
date: 2016-04-23 23:06:50
categories:
- Java
tags: - Java
一、字符串转数字
1、通过基本类型对应的包装类则可以实现把字符串转换成基本类型。Java为8种基本类型都提供了对
应的包装类:boolean对应Boolean、byte对应Byte、short对应Short、int对应Integer、long对
应Long、char对应Character、float对应Float、double对应Double,8个包装类都提供了一个
parseXxx(String str)静态方法用于将字符串转换成基本类型。(注意:如果字符串不是数值型字
符串,转换将导致一个运行时错误。)
String s = "123";
byte b = Byte.parseByte(s);
short t = Short.parseShort(s);
int i = Integer.parseInt(s);
long l = Long.parseLong(s);
Float f = Float.parseFloat(s);
Double d = Double.parseDouble(s);
boolean bo = Boolean.parseBoolean(s);
char c = Character.parseCharacter(s);
2、i=Integer.valueOf(s).intValue();
**总结:**方法1直接使用静态方法,不会产生多余的对象,但会抛出异常。方法2,Integer.valueOf(s
) 相当于new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象。
二、数字转字符串
1、String.valueOf(Object)
各种数字类型转换成字符串型:
// 其中 value 为任意一种数字类型。将不用担心object是否为null值这一问题。
String s = String.valueOf(value);
Jdk里String. valueOf(Object)源码如下:
/**
*
* Returns the string representation of the Object argument.
* @param obj an Object.
* @return if the argument is null, then a string equal to
* “null”; otherwise, the value of
* obj.toString() is returned.
* @see java.lang.Object#toString()
*/
public static String valueOf(Object obj) {
return (obj == null) ? “null” : obj.toString();
}
从上面的源码可以很清晰的看出null值不用担心的理由。但是,这也恰恰给了我们隐患。我们应当注
意到,当object为null时,String.valueOf(object)的值是字符串”null”,而不是null!!!
在使用过程中切记要注意。
2、Object.toString()
在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。
3、i + “”
4、(String)要转换的对象
使用这种方法时,需要注意的是类型必须能转成String类型。因此最好用instanceof做个类型检查,
以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别小心的是因定义为
Object类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外
小心。此外,因null值可以强制转换为任何java类类型,(String)null也是合法的。
效率:方法2>方法3>方法1,方法1和方法3差别不大。