java中数据类型的转换

----------------------- Page 1-----------------------

                           Java数据类型转换

                           Java数据类型转换

                           JJaavvaa数数据据类类型型转转换换

 

   我们知道,Java 的数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又

分为整型和浮点型;相对于数据类型,Java 的变量类型为布尔型boolean;字符型char;整

 

型byte、short、int、long;浮点型float、double。其中四种整型变量和两种浮点型变量分别

对应于不同的精度和范围。此外,我们还经常用到两种类变量,即String和Date。对于这

些变量类型之间的相互转换在我们编程中经常要用到,在下面的论述中,我们将阐述如何实

 

现这些转换。

1 数据类型转换的种类

  java 数据类型的转换一般分三种,分别是:

 

  (1). 简单数据类型之间的转换

  (2). 字符串与其它数据类型的转换

  (3). 其它实用数据类型转换

 

  下面我们对这三种类型转换分别进行论述。

2 简单数据类型之间的转换

  在Java 中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为

 

(byte,short,char)--int--long--float--double

 

   简单数据类型之间的转换又可以分为:

 

  ●低级到高级的自动类型转换

  ●高级到低级的强制类型转换

  ●包装类过渡类型能够转换

 

2.1 自动类型转换

  低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在

Java 中直接通过:

 

byte b;int i=b;long l=b;float f=b;double d=b;

   如果低级类型为char 型,向高级类型(整型)转换时,会转换为对应ASCII 码值,例如

\r

 

  char c='c'; int i=c; System.out.println("output:"+i);

输出:output:99;

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

 

的强制类型转换。

short i=99;char c=(char)i;System.out.println("output:"+c);

输出:output:c;

 

但根据笔者的经验,byte,short,int 三种类型都是整型,因此如果操作整型数据时,最好统一

使用int型。

2.2 强制类型转换

 

 将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换。即你必须采

用下面这种语句格式:

int i=99;byte b=(byte)i;char c=(char)i;float f=(float)i;

 

   可以想象,这种转换肯定可能会导致溢出或精度的下降,因此笔者并不推荐使用这种转

换。

 2.3 包装类过渡类型转换


----------------------- Page 2-----------------------

  在我们讨论其它变量类型之间的相互转换时,我们需要了解一下Java 的包装类,所谓包

装类,就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们

 

会大量使用这些包装类。Java 共有六个包装类,分别是Boolean、Character、Integer、Long、

Float 和Double,从字面上我们就可以看出它们分别对应于 boolean、char、int、long、float

和double。而String和Date 本身就是类。所以也就不存在什么包装类的概念了。

 

  在进行简单数据类型之间的转换(自动转换或强制转换)时,我们总是可以利用包装类进

行中间过渡。

  一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的

 

各种方法进行类型转换了。例如:

 例1,当希望把float 型转换为double 型时:

  float f1=100.00f; Float F1=new float(f1);  Double d1=F1.doubleValue();//F1.doubleValue()

 

为Float 类的返回double 值型的方法

  当希望把double 型转换为int型时:

  double d1=100.00; Double D1=new Double(d1);  int i1=D1.intValue();

 

  当希望把int型转换为double 型时,自动转换:

  int i1=200; double d1=i1;

  简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:

 

Boolean(boolean value)、Character(char value)、Integer(int value)、Long(longvalue)、Float(float

value)、Double(double value)

而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种

 

方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以

得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。

 3 字符串型与其它数据类型的转换

 

  通过查阅类库中各个类提供的成员方法可以看到,几乎从java.lang.Object 类派生的所有

类 提 供 了 toString() 方 法 , 即 将 该 类 转 换 为 字 符 串 。 例 如 :

Characrer,Integer,Float,Double,Boolean,Short 等类的toString()方法toString()方法用于将字符、

 

整数、浮点数、双精度数、逻辑数、短整型等类转换为字符串。如下所示:

int i1=10;float f1=3.14f;double d1=3.1415926;Integer I1=new Integer(i1);//生成Integer 类\rFloat

F1=new Float(f1); //生成Float 类\rDouble D1=new Double(d1); //生成Double 类\r//分别调用包

 

装类的 toString()方法转换为字符串 String si1=I1.toString();String sf1=F1.toString();String

sd1=D1.toString();Sysytem.out.println("si1"+si1);Sysytem.out.println("sf1"+sf1);Sysytem.out.pri

ntln("sd1"+sd1);

 

五、将字符型直接做为数值转换为其它数据类型

将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换

中,实际上是将其转换成对应的ASCII 码,但是我们有时还需要另一种转换关系,例如,'1'

 

就是指的数值 1,而不是其 ASCII 码,对于这种转换,我们可以使用 Character 的

getNumericValue(char ch)方法。

六、Date 类与其它数据类型的相互转换

 

 整型和Date 类之间并不存在直接的对应关系,只是你可以使用 int型为分别表示年、月、

日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date

类构造函数的三种形式:

 

Date(int year, int month, int date):以int型表示年、月、日

Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分

Date(int year, int month, int date, int hrs, int min, int sec):以int 型表示年、月、日、时、分、


----------------------- Page 3-----------------------

秒\r

在长整型和Date 类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标

 

准时间1970 年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date 类也有其相应的

构造函数:Date(longdate)

获取Date 类中的年、月、日、时、分、秒以及星期你可以使用Date 类的getYear()、getMonth()、

 

getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date

类转换成int。

而Date 类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,与包装类一

 

样,Date 类也有一个toString()方法可以将其转换为String类。

有时我们希望得到Date 的特定格式,例如20020324,我们可以使用以下方法,首先在文件

开始引入,

 

import java.text.SimpleDateFormat;import java.util.*;java.util.Date date = new java.util.Date();//

如 果 希 望 得 到 YYYYMMDD  的 格 式 SimpleDateFormat  sy1=new

SimpleDateFormat("yyyyMMDD");StringdateFormat=sy1.format(date);//如果希望分开得到年,

 

月 , 日 SimpleDateFormat sy=new SimpleDateFormat("yyyy");SimpleDateFormat sm=new

SimpleDateFormat("MM");SimpleDateFormat  sd=new     SimpleDateFormat("dd");String

syear=sy.format(date);Stringsmon=sm.format(date);Stringsday=sd.format(date);

 

1 字符串转换成数据

字符串转换成整数:

 

StringMyNumber ="1234";

int MyInt = Integer.parseInt(MyNumber);

字符串转换成 byte, short, int, float, double, long 等数据类型,可以分别参考 Byte, Short,

 

Integer, Float, Double, Long类的parseXXX方法。

 

2 数据转换成字符串

 

整数转换成字符串:

int MyInt = 1234;

StringMyString="" +MyInt;

 

其它数据类型可以利用同样的方法转换成字符串。

 

3 十进制到其他进制的转换

 

十进制整数转换成二进制整数,返回结果是一个字符串:

Integer.toBinaryString(int i);

Integer 和Long提供了toBinaryString, toHexString和toOctalString方法,可以方便的将数据

 

转换成二进制、十六进制和八进制字符串。功能更加强大的是其 toString(int/longi, int radix)

方法,可以将一个十进制数转换成任意进制的字符串形式。

byte, short, float 和 double 等数据类型,可以利用 Integer 或者是 Long 的 toBinaryString,

 

toHexString, toOctalString 和toString 方法转换成其他进制的字符串形式。

 

4 其它进制到十进制的转换


----------------------- Page 4-----------------------

五进制字符串14414 转换成十进制整数,结果是1234:

System.out.println(Integer.valueOf("14414", 5);

 

Integer 和Long提供的valueOf(Stringsource, int radix)方法,可以将任意进制的字符串转换成

十进制数据。

 

5 整数到字节数组的转换

public static byte[] toByteArray(int number)

{

 

int temp =number;

byte[] b=new byte[4];

for(int i =b.length -1; i > -1; i--)

 

{

b[i] = new Integer(temp &0xff).byteValue();

temp =temp >> 8;

 

}

return b;

}

 

6 字节数组到整数的转换

public static int toInteger(byte[] b)

 

{

int s = 0;

for(int i =0; i <3; i++)

 

{

if(b[i] > 0)

s =s + b[i];

 

else

s =s + 256 + b[i];

s =s *256;

 

}

if(b[3] > 0)

s =s + b[3];

 

else

s =s + 256 + b[3];

return s;

 

}

 

7 短整数与字节数组之间的相互转换

 

short 与int之间的区别在于short是两个字节的,而int 是四个字节的。因此,只需要将5 与

6 中的范例程序小做改动,即可实现短整数与字节数组之间的相互转换。

 

8 字节数组转换成双精度浮点数

public double toDouble(byte[] b)

{


----------------------- Page 5-----------------------

longl= 0;

Double D =new Double(0.0);

 

l= b[0];

l|= ((long)b[1]<<8);

l|= ((long)b[2]<<16);

 

l|= ((long)b[3]<<24);

l|= ((long)b[4]<<32);

l|= ((long)b[5]<<40);

 

l|= ((long)b[6]<<48);

l|= ((long)b[7]<<56);

return D.longBitsToDouble(l);

 

}

 

9 布尔类型转换成字符串

 

第一种方法是:

 

boolean bool =true;

 

Strings = new Boolean(bool).toString();//将bool 利用对象封装器转化为对象

s.equals("true");

/* 其中,toString 方法是一个继承方法。java 中所有的类都是object 的继承,object 的一个

 

重要方法就是toString,用于将对象转化为字符串。*/

 

第二种方法是:

 

boolean bool =true;

Strings = String.valueOf( bool );

 

首先,从代码长度上讲第二种方法明显要比第一种方法简洁;其次,第一种方法在转化过程

中多引入了一个完全没有必要的对象,因此,相对第二种方法来说这就造成了内存空间的浪

 

费,大大减慢了运行速度。所以,推荐使用第二种方法。

 

10 数字类型与数字类对象之间的转换

 

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


----------------------- Page 6-----------------------

longl= 169;

Longlo= newLong( 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();

 

*******************************************************************************

**********************

 

1如何将字串 String 转换成整数 int?

 

A. 有两个方法:

 

1).int i = Integer.parseInt([String]); 或

 

i= Integer.parseInt([String],[int radix]);

 

2).int i = Integer.valueOf(my_str).intValue();

 

注: 字串转成 Double, Float, Long 的方法大同小异.

 

2 如何将整数 int 转换成字串 String?

 

A. 有叁种方法:

 

1.) Strings= String.valueOf(i);

 

2.) Strings= Integer.toString(i);

 

3.) Strings= "" + i;

 

注: Double, Float, Long 转成字串的方法大同小异.

 

JAVA数据类型转换                 ynniebo [收藏]

关键字  类型转换


----------------------- Page 7-----------------------

出处

 

 这是一个例子,说的是JAVA中数据数型的转换.供大家学习引

 

package cn.com.lwkj.erts.register;

 

import java.sql.Date;

public class TypeChange {

   public TypeChange() {

 

   }

   //change thestringtype totheint type

   public static int stringToInt(Stringintstr)

 

   {

      Integer integer;

      integer =Integer.valueOf(intstr);

 

      return integer.intValue();

   }

   //change int type tothestringtype

 

   public static StringintToString(int value)

   {

      Integer integer =new Integer(value);

 

      return integer.toString();

   }

   //change thestringtype tothefloat type

 

   public static float stringToFloat(Stringfloatstr)

   {

      Float floatee;

 

      floatee = Float.valueOf(floatstr);

      return floatee.floatValue();

   }

 

   //change thefloat type tothestringtype

   public static StringfloatToString(float value)

   {

 

      Float floatee =new Float(value);

      return floatee.toString();

   }

 

   //change thestringtype tothesqlDate type

   public static java.sql.Date stringToDate(StringdateStr)

   {

 

      return java.sql.Date.valueOf(dateStr);

   }

   //change thesqlDate type tothestringtype

 

   public static StringdateToString(java.sql.Date datee)

   {

      return datee.toString();


----------------------- Page 8-----------------------

   }

 

   public static void main(String[] args)

   {

       java.sql.Date day ;

 

       day =TypeChange.stringToDate("2003-11-3");

       Stringstrday= TypeChange.dateToString(day);

       System.out.println(strday);

 

   }

 

}

 

JAVA中常用数据类型转换函数

虽然都能在JAVA API 中找到,整理一下做个备份。

 

string->byte

Byte static byte parseByte(Strings)

 

byte->string

Byte static StringtoString(byte b)

 

char->string

Character static StringtoString(char c)

 

string->Short

Short static Short parseShort(Strings)

 

Short->String

Short static StringtoString(Short s)

 

String->Integer

Integer static int parseInt(Strings)

 

Integer->String

Integer static Stringtostring(int i)

 

String->Long

Longstatic longparseLong(Strings)

 

Long->String

Longstatic StringtoString(Longi)


----------------------- Page 9-----------------------

String->Float

Float static float parseFloat(Strings)

 

Float->String

Float static StringtoString(float f)

 

String->Double

Double static double parseDouble(Strings)

 

Double->String

Double static StringtoString(Double

 

*******************************************************************************

*******************

string->byte

 

Byte static byte parseByte(Strings)

 

byte->string

 

Byte static StringtoString(byte b)

 

char->string

 

Character static StringtoString(char c)

 

string->Short

 

Short static Short parseShort(Strings)

 

Short->String

 

Short static StringtoString(Short s)

 

String->Integer

 

Integer static int parseInt(Strings)

 

Integer->String

 

Integer static Stringtostring(int i)

 

String->Long

 

Longstatic longparseLong(Strings)

 

Long->String

 

Longstatic StringtoString(Longi)

 

String->Float

 

Float static float parseFloat(Strings)

 

Float->String


----------------------- Page 10-----------------------

Float static StringtoString(float f)

 

String->Double

Double static double parseDouble(Strings)

 

Double->String

Double static StringtoString(Double d)

 

文章来源:http://blog.csdn.net/hcom/archive/2005/04/25/362684.aspx

 

Java中几种常用的数据类型之间转换方法:

 

1. short-->int 转换

 

exp: short shortvar=0;

 

int intvar=0;

 

shortvar= (short) intvar

 

2. int-->short 转换

 

exp: short shortvar=0;

 

int intvar=0;

 

intvar=shortvar;

 

3. int->String 转换

 

exp: int intvar=1;

 

String stringvar;

 

Stringvar=string.valueOf (intvar);

 

4. float->String 转换

 

exp: float floatvar=9.99f;

 

String stringvar;

 

Stringvar=String.valueOf (floatvar);


----------------------- Page 11-----------------------

5. double->String 转换

 

exp double doublevar=99999999.99;

 

String stringvar;

 

Stringvar=String.valueOf (doublevar);

 

6. char->String 转换

 

exp char charvar=’a’;

 

String stringvar;

 

Stringvar=String.valueOf (charvar);

 

7 String->int、float、long、double 转换

 

Exp String intstring=”10”;

 

String floatstring=”10.1f”;

 

String longstring=”99999999”;

 

String doubleString=”99999999.9”;

 

Int I=Integer.parseInt (intstring);

 

Float f= Integer.parseInt (floatstring);

 

Long lo=long. parseInt (longstring);

 

Double d=double. parseInt (doublestring);

 

8 String->byte、short 转换

 

Exp String s=”0”;

 

Byte b=Integer.intValue(s);

 

Short sh=Integer.intValue(s);


----------------------- Page 12-----------------------

9 String->char 转换

 

Exp String s=”abc”;

 

Char a=s.charAt(0);

 

返回字符a

 

10 String-->boolean 转换

 

String s=”true”;

 

Boolean flag=Boolean.valueOf (“s”);

 

文章来源:http://www.68design.net/Development/JSP/20786-1.html

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值