(第15讲)String类型和8种基本类型及其包装类之间的转换

来源:互联网 发布:mac jdk默认安装路径 编辑:程序博客网 时间:2024/05/29 12:01

第十五讲

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 0
原创粉丝点击