您的位置:首页 > 编程语言 > Java开发

java基础部分总结第三部分

2016-05-09 17:52 253 查看
(12)各种数据类型之间的转换(重点)

①基本数据类型由低级到高级(byte,short,char)-->int-->long-->float-->double

大小指的是值范围的大小



1)低级到高级

2)高级到低级可以转换强制转换但会找出精度丢失

3)基本类型向类类型转换

4)基本类型向字符串转换

5)类类型向字符串转换

③基本数据类型之间的数据转换

1.在一个双操作数以及位运算等算术运算式中,会根据操作数的类型将低级的数据类型自动转换为高级的数据类型,分为以下几种情况:

1)只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;

2)只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;

3)只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;

4)两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。

2.如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,再做其它类型的自动转换。

3.对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。如:

short i=99 char c=(char)i; 

System.out.println("output:"+c);

4.不能在布尔值和任何数字类型间强制类型转换;

5.不同级别数据类型间的强制转换,可能会导致溢出或精度的下降。

6.当字节类型变量参与运算,java作自动数据运算类型的提升,将其转换为int类型。

例如:byte b; b=3; b=(byte)(b*3);//必须声明byte。

④包装类与基本数据类型之间的转换

  简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)

  而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,

  例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。

1.字符串与其它类型间的转换

  ⑴其它类型向字符串的转换

    ①调用类的串转换方法:X.toString();

    ②自动转换:X+“”;

    ③使用String的方法:String.volueOf(X);

  ⑵字符串作为值,向其它类型的转换

    

①先转换成相应的封装器实例,再调用对应的方法转换成其它类型

      例如,字符中“32.1”转换double型的值的格式为:new Float(“32.1”).doubleValue()。也可以用:Double.valueOf(“32.1”).doubleValue() 

    ②静态parseXXX方法

    String s = "1";

    

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);

   

⑤转换实例

1)基本类型向类类型转换

正向转换:通过类包装器来new出一个新的类类型的变量?

Integer a= new Integer

(2);反向转换:通过类包装器来转换

int b=a.intValue();

通过类包装器——>基本数据类型

eg1:int i=Integer.parseInt(“123”)

说明:此方法只能适用于字符串转化成整型变量

eg2: float f=Float.valueOf(“123”).floatValue()

说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。

eg3: boolean b=Boolean.valueOf(“123”).booleanValue()

说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。

eg4:double d=Double.valueOf(“123”).doubleValue()

说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。?

eg5:long l=Long.valueOf(“123”).longValue()

说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。

eg6:char=Character.valueOf(“123”).charValue()

说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。

2)基本类型向字符串的转换

正向转换: 如下:

System.out.println(""+2+3);// “""”把2转成字符串操作; 

System.out.println(2+3);//不存在转换。

System.out.println(2+3+"");//前两个数值相加后,被“""”转成字符串

System.out.println(2+""+3);//同第一个。

输出显示为:23,5,5,23

3)类类型向字符串转换

正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可

反向转换:通过类包装器new出一个新的类类型的变量

eg1: int i=Integer.valueOf(“123”).intValue()

说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。

eg2: float f=Float.valueOf(“123”).floatValue()

说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。

eg3: boolean b=Boolean.valueOf(“123”).booleanValue()

说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。

eg4:double d=Double.valueOf(“123”).doubleValue() 

说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。 

eg5: long l=Long.valueOf(“123”).longValue()

说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。

eg6: char=Character.valueOf(“123”).charValue()

说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 数据