………………………………………………………………………………………………………………………………
软件开发与设计
Java程序编码中数据类型转换问题的探讨
李建,傅伟
(江苏财经职业技术学院计算机工程系,淮安223003)
摘要:本文简要分析了高校学生在Java语言数据类型学习时出现的问题,重点则对Java语言中会出现的各种数据类型进行了恰当分类,并对数据转换进行了细致、全面的探讨。关键词:Java语言;数据类型;数据转换
SomeDiscussionAboutDataTypeTransformationInJavaProgrammingLIJian,FUWei(ComputerEngineeringDepartment,JiangsuvocationalandTechnicalCollegeofFinance&Economics,Huai'an223003)【Abstract】Thisarticleintroductionsummaryanalysissomestudents’puzzlesabouttheJavadatatypes,Themainbodyin
carriesonanappropriateclassificationforallkindsofdatatypewhichappeartotheJavalanguage,andgiveacarefully,comprehensivediscussionaboutthedataconversion.
【Keywords】Javalanguage;datatype;datatypeconversion
1引言
Java是非常有吸引力的面向对象编程语言,也是当前最
下Java的包装类,所谓包装类,就是可以直接将简单类型的变量表示为一个类,在执行数据类型的相互转换时,会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上就可以看出分别对应于boolean、char、int、long、float和double。
在进行基本数据类型之间的转换(自动转换或强制转换)时,经常可以利用包装类进行中间过渡,要得到与变量相对应的包装类对象,可以利用包装类的构造函数。即:Boolean(booleanvalue)、Character(charvalue)、Integer(intvalue)、Long(longvalue)、Float(floatvalue)、Double(doublevalue)
例1:要生成与float类型变量对应的包装类对象。floatf1=100.00f;FloatF1=newFloat(f1);
这样就生成了一个Float类的包装类对象F1,对应变量f1。
流行的网络编程语言。在很多高校,Java程序设计也已成为信息类相关专业学生的必修科目。然而,Java数据类型的多样性,各种数据类型之间的灵活多变,以及具有鲜明面向对象特色的转换方式,也给很多刚接触这门语言的学生带来了很大的麻烦,加上很多Java语言教材对这方面讲述不多,网络上虽然有很多这方面的文章,但大部分都没有全面、系统地对这些问题进行阐述。
2Java数据类型
Java语言的数据类型有两大类:一类是简单类型,也称
主要类型,另一类是引用类。简单类型变量中存储的是具体的值,而引用类型的变量中存储的是对象的引用。
为了能更全面、更清楚地分析Java语言数据类型的特点,本文将Java语言涉及到的数据类型分为三大类,即基本类型、数组类型、复合类型。详细分类如图1。
Java数据类型
4数据类型的转换
在Java中各种数据类型之间的转换,可以分为以下几种
情况:简单数据类型之间的转换,数组和字符串间的转换,字符串与其它数据类型的转换,其它实用数据类型转换。下面分别进行说明。
复合类型
基本类型数组类型
4.1基本数据类型4.1.1自动类型
在Java中整型、实型、字符型被视为同一类数据,这些类型由低级到高级分别为(byte,short,char)→int→long→float→double,低级变量可以直接转换为高级变量,例如,下面的语句可以在Java中直接通过:
byteb;inti=b;longl=b;floatf=b;doubled=b;
数值型字符型布尔型一维数组数组类接口
byteshortintlongfloatdouble
图1Java的数据类型分类图
4.1.2强制类型
将高级变量转换为低级变量时,情况会复杂一些,可以使用强制类型转换。即必须采用下面这种语句格式:
inti;
byteb=(byte)i;
3数据类型转换类———包装类
在讨论各种数据类型之间的相互转换前,应该先了解一
本文收稿日期:2008年8月5日
-3-
软件开发与设计
………………………………………………………………………………………………………………………………
可以想象,这种转换可能会导致溢出或精度的下降,因
//a的值为1234
doubleb=Double.parseDouble(c);//b的值为1234.0booleanbl=Boolean.parseBoolean(c);//bl的值为false4.3.2基本数据类型转换得到字符串类型
对于所有的包装类都存在一个名为toString()的方法可以将其转换成对应的String类,而对于整型类和长整型类,还可以使用toBinaryString(inti)、toHexString(inti)、toOctal-String(inti)分别以二进制、十六进制和八进制的形式转换到String类。
inti1=10;floatf1=3.14f;doubled1=3.1415926;生成对应的包装类对象
IntegerI1=newInteger(i1);FloatF1=newFloat(f1);DoubleD1=newDouble(d1);
分别调用包装类的toString()方法转换为字符串Stringsi1=I1.toString();Stringsf1=F1.toString();Stringsd1=D1.toString();
还有一种方法就是String类提供了一组valueOf()方法将其他数据类型转换成字符串,其参数可以是其他任何类型,除byte类型。
例5chardata[]={'a','b','c','d'};Stringstr1,str2,str3;str1=String.valueOf(12D);//str1=“12”str2=String.valueOf(3<2);//str2=“false”str3=String.valueOf(data,1,3);//str3=“abc”
SOFTWAREDEVELOPMENTANDDESIGN
此在具体编程过程中并不推荐使用这种转换。
4.1.3引入包装类
一般情况下,首先声明一个变量,然后生成一个对应的包装类,各个包装类中,都有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,int-Value()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。
例2当希望把float型变量转换为double型变量时。floatf1=100.00f;
FloatF1=newFloat(f1);Doubled1=F1.doubleValue();
//doubleValue()为Float类的返回double值型的方法。当希望把double型转换为int型时。
doubled1=100.00;DoubleD1=newDouble(d1);inti1=D1.intValue();
4.1.4字符数据类型
将字符型变量转换为数值型变量有两种方式,一种为由字符型自动转换为数值型,实际上是将其转换成对应的ASCII码;另一种转换是由于该字符本身实际上是一个数字,要还原成数字时,就要使用字符型包装类Character的getNu-mericValue(charch)方法。
例3第一种转换方式:
charc=’a’;inti=c;//此时i的值为97第二种转换方式:
charc='2';inti=Character.getNumericValue(c);//此时i的值为24.2数组类型和字符串类
字符串可以转换为字节数组或字符数组,这种转换在Java流处理中十分有用,有3个方法可用于这类转换。
Byte[]getBytes()
//按系统默认字符集编码转换为字节数组Byte[]getBytes(Stringenc)//其中enc为字符集编码,还有GBKChar[]toCharArray()4.3字符串与基本数据
4.3.1String类转换为基本数据类型
将字符串转换为其他基本数据类型,也可用到上面所用到的包装类,各个基本类型的包装类中都有一个parse××(Stringstr)的方法,使用这个方法,可以将参数中字符串转换为包装类对应的基本数据类型变量,而对于字符型变量,事实上String类可以理解为一个char型数组,因此可以使用String类对象调用这样的方法来实现:charAt(intindex)可以得到String类中某一位置上的字符,toCharArray()更可以将整个String类转换成一个char的数组。
例4Stringc=\"1234\";inta=Integer.parseInt(c);
//转换为字符数组
5结语
数据类型是一门编程语言的最基本结构部分,掌握好数
据类型之间的相互转换也是读写源程序之前应能完全掌握的基本技能,本文将Java语言的数据类型进行恰当的归类,并就数据类型之间的各种转换方法分别进行说明,希望对读者有所帮助。
参考文献
[1]邵丽萍,邵光亚,张后扬.Java语言程序设计(第二版)
[M].北京:清华大学出版社,2004:8.
[2]赵景晖.Java程序设计[M].北京:机械工业出版社,
2008:1.
[3]龚雄兴.Java中不同类型数据间的转换.福建电脑[J],
2005:1.作者简介
李建,男(1979-),助理讲师/硕士,主要研究方向:计算机网络与分布式数据库。
-4-
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务