Topic: 怎样进行数据转换 |
Print this page |
1.怎样进行数据转换 | Copy to clipboard |
Posted by: pc Posted on: 2005-01-17 10:50 int ==> string string ==> int |
2.Re:怎样进行数据转换 [Re: pc] | Copy to clipboard |
Posted by: YuLimin Posted on: 2005-01-28 23:34 要说类型转换,首先要说一说java的数据类型。java中的数据类型分为两种:基本类型、引用类型。基本数据类型没有什么好说的bytecharshort int long floatdoubleboolean,这些类型除了boolean之外,其他的与C语言中的类型没有太大的区别。因为这篇文章的论题是类型转换,所以在此不讨论boolean值的用法。 下面要说的是引用类型。引用在有的书里也叫做句柄,它很类似C/C++中的指针,但要注意引用和指针并不是同一个概念。指针是一个存放地址的变量,他使C/C++程序员能够灵活地访问内存,但这也给程序的安全性带来了很大的隐患,由于程序员可以对指针随意的运算操作,所以一不留神就会破坏其他的存储单位,导致程序中出现意想不到的结果。引用继承了指针节省内存的优点,又限制了对地址的操作,所以他是安全的。引用类型包括所有类生成的实例和数组(不管是对象数组还是基本类型数组都实现Cloneable接口,所以他也是一个对象实例),所有引用类型都继承自t这个类。要说明一点的是java中的所有变量都是一个引用,不管是引用类型还是基本类型。 现在要正式讨论类型的转换了。用过C/C++的人对基本类型的转换都会很清楚,基本类型转换分为类型提升和强制转换。 例如:inta=100;longb=a+100;//这个地方就用到了类型提升,a+100从int提升到了longa=(int)b;//这个地方用到了强制转换 强制类型转换在某种情况下会丢失精度,如:byteb;inta=200;b=(byte)a;//虽然这里用到了强制转换,但因为byte的范围是-127到127//所以强制转换后宽度会被截短 在java中除了这些转换之外基本数据类型还可以被隐式的转换成String,例如:System.out.print(转换+100);//如果在数据前面有字符串用+连接//就会隐式的转换成String 引用类型的转换实现起来要比C++简单的多,如果一个对象与另一个对象没有任何的继承关系,那么他们就不能进行类型转换。如果要把一个派生类对象赋值给基类对象这个称为上溯造型。如果要把基类对象赋值给派生类对象就需要强制类型转换,这称为下溯造型,下溯造型有一些危险,要安全的进行下溯造型有一个前题,基类对象必须是从派生类对象中上溯过来的。 例如:class Baseclass Child extends Base public staticvoidmain(String args) Base base=new Child();//上溯造型 Child child=(Child)base;//下溯造型 Child child1=(Child)new Base();//抛出ClassCastException异常 最后,谈一谈String与引用类型的转换。前面已经说过,所有的对象都是从t继承过来的,t中有一个toString方法。这个方法是所有的对象都可以转换成String,如果想把自定义的类转换成String,最安全的做法是重写toString方法。和基本类型一样如果对象前有String对象用+连接,对象就会隐式转换成String,这种情况实际上是隐式调用了toString方法。 各种数字类型转换成字符串型: String s = String.valueOf( value); // 其中 value 为任意一种数字类型。 字符串型转换成各种数字类型: String s = "169"; 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 ); 数字类型与数字类对象之间的转换: byte b = 169; Byte bo = new Byte( b ); b = bo.byteValue(); short t = 169; Short to = new Short( t ); t = to.shortValue(); int i = 169; Integer io = new Integer( i ); i = io.intValue(); long l = 169; Long lo = new Long( l ); l = lo.longValue(); float f = 169f; Float fo = new Float( f ); f = fo.floatValue(); double d = 169f; Double dObj = new Double( d ); d = dObj.doubleValue(); |
3.Re:怎样进行数据转换 [Re: pc] | Copy to clipboard |
Posted by: pc Posted on: 2005-02-25 09:49 谢谢 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |