隐藏

Java字符串和数字间的转换

发布:2022/3/17 11:45:44作者:管理员 来源:本站 浏览次数:785

一、字符串转数字

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); 
  • 1
  • 2

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差别不大。