String类型和8种基本类型及其包装类之间的转换

String类型和8种基本类型及其包装类之间的转换

在这里插入图片描述

weiyastory 2016-04-11 19:44:52 1494 收藏
分类专栏: java基础
版权
第十五讲

1、先说其他类型转换为String类型:

一:采用Object.toString()

toString方法是java.lang.Object对象的一个public方法。在java中任何对象都会继承Object对象,所以一般来说任何对象都可以调用toString这个方法。这是采用该种方法时,常派生类会覆盖Object里的toString()方法。但是在使用该方法时要注意,必须保证Object不是null值,否则将抛出NullPointerException异常。

如果用toString()分两种情况:

(1)如果是引用数据类型转换为String类型,则为: 引用数据类型.toSring( 需要转换的引用数据类型对象 );

(2)如果是基本数据类型转换为string 类型,则为: 基本数据类型对应的包装类. toString( 基本数据类型的变量 );

二、采用(String)Object
该方法是一个标准的类型转换的方法,可以将Object转换为String。但是在使用该方法是要注意的是需要转换的类型必须是能够转换为String的,否则会出现CalssCastException异常错误。

Object o = new Integer(100);

String s = (String)o;

这段程序代码会出现java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String。因为将Integer类型强制转换为String类型,无法通过。

三、String.valueOf(Object)
上面我们使用Object.toString()方法时需要担心null问题。但是使用该方法无需担心null值问题。因为在使用String.valueOf(Object)时,它会判断Object是否为空值,如果是,则返回null。下面为String.valueOf(Object)的源码:

public static String valueOf(Object obj)

{

return (obj == null) ? “null” : obj.toString();

}

从上面我们可以看出两点:一是不需要担心null问题。二是它是以toString()方法为基础的。
但是一定要注意:当object为null时,String.valueOf(object)的值是字符串对象:“null”,而不是null!!!

参考大神的:http://www.jb51.net/article/43515.htm

2、再说String类型转换为基本数据类型以及相应的包装类的方法:

一、如果将String类型转换为包装类所对应的基本数据类型,所用的方法如下
包装类 返回值(返回的是基本数据类型) 方法名

Integer int public static int Integer parseInt ( String s )

Short short public static short Short parseShort ( String s )

Byte byte public static byte Byte parseByte ( String s )

Long long public static long Long parseLong ( String s )

Float float public static float Float parseFloat ( String s )

Double double public static double Double parseDouble( String s )

Boolean boolean public static boolean Boolean parseBoolean ( String s )

Character char 无parseXX( String s )方法,但是可以用char c2[] = s.toCharArray();

或者char c3 = s.charAt(9);

其中Boolean、Double、Float 只有这一种parseXX,但是Integer、Short、Long、Byte还有另外一种形式:

可以根据基数转换出不同进制的数

public static int parseInt(String s,int radix)
public static short parseShort(String s,int radix)
public static long parseLong(String s,int radix)
public static byte parseByte(String s,int radix)
并且除了Character和Float外,其他6种包装类都有两种构造方法:
包装类 构造方法名

Integer public Integer (int value) 和 public Integer(String s)

Short public Short (short vaule) 和 public Short (String s)

Byte public Byte (byte value)和public Byte(String s)

Long public Long(long Value)和 public Long(String s)

Double public Double (double value) 和 public Double(String s)

Boolean public Boolean (boolean value) 和 public Boolean (String s)

Float public Float(float value) 和 public Float (double value) 和 public Float (String s) 三个
Character public Character (char value) 一个

二、如果将String类型转换为基本数据类型,所用的方法如下

包装类 返回值(返回的是包装类对象) 方法名

Integer Integer 对象 public staticIntegervalueOf(String s)

Short Short对象 public staticShortvalueOf(String s)

Byte Byte对象 public static Byte valueOf(String s)

Long Long对象 public staticLongvalueOf(String s)

Float Float对象 public staticFloatvalueOf(String s)

Double Double对象 public staticDoublevalueOf(String s)

Boolean Boolean对象 public staticBooleanvalueOf(String s)

Character Character 对象 public staticCharactervalueOf(char c)

这两种方法本质上是一样的,因为valueOf内部也是调用的parseXX方法(Character除外),区别是valueOf返回的是包装类对象,parseXX返回的是包装类对应的基本数据类型。并且这两种方法在用的时候需要对异常(NumberFormatException)进行处理.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香瓜西蕉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值