java的各种类型转换汇总

java类型转换

 Integer ——String ——Long ——Float ——Double ——Date


1、将字串 String 转换成整数 int
(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 
(1) String s = String.valueOf(i);
(2) String s = Integer.toString(i);
(3) String s = "" + i;

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


 
import java.sql.Date; 
public class TypeChange { 
  public TypeChange() { 
  } 
  //change the string type to the int type 
  public static  int stringToInt(String intstr) 
  { 
   Integer integer; 
   integer = Integer.valueOf(intstr); 
   return integer.intValue(); 
  } 
  //change int type to the string type 
  public static String intToString(int value) 
  { 
   Integer integer = new Integer(value); 
   return integer.toString(); 
  } 
  //change the string type to the float type 
  public static  float stringToFloat(String floatstr) 
  { 
   Float floatee; 
   floatee = Float.valueOf(floatstr); 
   return floatee.floatValue(); 
  } 
  //change the float type to the string type 
  public static String floatToString(float value) 
  { 
   Float floatee = new Float(value); 
   return floatee.toString(); 
  } 
  //change the string type to the sqlDate type 
  public static java.sql.Date stringToDate(String dateStr) 
  { 
   return  java.sql.Date.valueOf(dateStr); 
  } 
  //change the sqlDate type to the string type 
  public static String dateToString(java.sql.Date datee) 
  { 
   return datee.toString(); 
  } 
  public static void main(String[] args) 
  { 
   java.sql.Date day ; 
   day = TypeChange.stringToDate("2003-11-3"); 
   String strday = TypeChange.dateToString(day); 
   System.out.println(strday); 
  } 
  
} 


===============================================

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


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


string->byte
Byte static byte parseByte(String s)

byte->string
Byte static String toString(byte b)

char->string
Character static String to String (char c)

string->Short
Short static Short parseShort(String s)

Short->String
Short static String toString(Short s)

String->Integer
Integer static int parseInt(String s)

Integer->String
Integer static String tostring(int i)

String->Long
Long static long parseLong(String s)

Long->String
Long static String toString(Long i)

String->Float
Float static float parseFloat(String s)

Float->String
Float static String toString(float f)

String->Double
Double static double parseDouble(String s)

Double->String
Double static String toString(Double)




===============================================

数据类型


基本类型有以下四种:
int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、
float长度数据类型有:单精度(32bits float)、双精度(64bits double)
boolean类型变量的取值有:ture、false
char数据类型有:unicode字符,16位
对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long


===============================================

转换原则


从低精度向高精度转换
byte 、short、int、long、float、double、char
注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,

再做其它类型的自动转换。


===============================================

数据类型之间的转转换
 
分为以下几种情况: 
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); 

(2)字符串作为值,向其它类型的转换 
  • 先转换成相应的封装器实例,再调用对应的方法转换成其它类型 
例如:
字符中"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 ); 
  • Character的getNumericValue(char ch)方法 

具体可查阅api。


===============================================

转换实例

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)

反向转换:通过类包装器
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”).doublue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doublue()方法返回其对应的double数值。


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


eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象


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语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的类型到存储范围大的类型。 具体规则为: byte→short(char)→int→long→float→double 也就是说byte类型变量可以自动转换为short类型,示例代码: byte b = 10; short sh = b; 这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。 在类型转换时可以跳跃。示例代码: byte b1 = 100; int n = b1; l 注意问题 在整数之间进行类型转换时,数值不发生改变,而,特将整数类型别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型转换转换规则 从存储范围大的类型到存储范围小的类型。 具体规则为: double→float→long→int→short(char)→byte 语法格式为: (转换到的类型)需要转换的值 示例代码: double d = 3.10; int n = (int)d; 这里将double类型变量d强制转换成int类型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的低位,例如int类型变量转换为byte类型时,则只去int类型的低8位(也就是最后一个字节)的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值