java基本数据类型之间的转换
在进行二元计算的时候,先将两个操作数转换为同一种类型,再计算
①如果两个数中有一个是double类型的,那么另一个也将转换为double类型;
②如果两个数中有一个是float类型的,那么另一个也将转换为float类型;
③如果两个数中有一个是long类型的,那么另一个也将转换为long类型;
④否则,两个操作数都将被转换为int类型
3.5.5 类型转换
①强制类型转换.
新类型 变量名= (新类型)原变量;
将int类型转换不double类型是看自动进行的,而double转换不int需要强制类型转换.
例:
double x=0.999;
int n=(int)x; //强制类型转换是通过截断小数部分转换不整型的
②字符串转换为其它类型
xxx n=Xxxxx.parseXxx(原变量)
String str1=”123”;
int n=Integer.parseInt(str1);
字符串转换为byte、short、int、long、float、double类型,参考Byte、Short、Int、Long、Float、Double类的parseXxx方法
③ 基本类型与其包装器类之间的转换
包装器类 对象变量名=new 包装器类(基本类型变量);
基本类型 基本类型变量名=对象变量名. 基本类型Value();
例:
int i=1;
Integer io=new Integer(i);
int b=io.intValue();
④数据转换为String类型
String str1=””+基本类型变量;
⑤十进制到其他进制的转换
Integer.toBinaryString(int i); //十进制 转换成二进制
Integer.toHexString(int i); //十进制 转换成十六进制
Integer.toOctalString(int i); //十进制 转换成八进制
toString(int/long i, int radix)方法,可以将一个十进制数转换成任意进制的字符。
byte, short, float和double等数据类型,可以利用Integer或者Long的toBinaryString, toHexString, to OctalString和toString方法转换成其他进制的字符串。
⑥其它进制到十进制的转换
Integer.valueOf("1000", 几进制);
Integer和Long类的valueOf(String source, int r)方法,可以将任意进制的字符串转换成十进制数据。
⑦字节数组与数据类型的转换
整型转换为字节数组,其它类型参考此例
例1:
public static byte[] InttoByteArray(int n)
{
int tmp = n;
byte[] b=new byte[4];
b[3]=new Integer(tmp).byteValue();
tmp=tmp>>8;
b[2]=new Integer(tmp).byteValue();
tmp=tmp>>16;
b[1]=new Integer(tmp).byteValue();
tmp=tmp>>24;
b[0]=new Integer(tmp).byteValue();
return b;
}
例2:
public static byte[] InttoByteArray(int n)
{
int tmp1 = n;
byte[] b=new byte[4]; //整型需要4个字节存储
for (int i = b.length - 1; i >=0; i--)
{
//int的后8位转换为byte型
b[i] = new Integer(tmp1).byteValue();
tmp1 = tmp1 >> 8;
}
return b;
}
字节数组转换为整型,其它类型参考此例
byte[] b=new byte[4];
b[0]=0;
b[1]=0;
b[2]=39;
b[3]=16;
public static int toInteger(byte[] b)
{
int s=0;
s=b[0] * 256 * 256 * 256 + b[1] * 256 * 256 +b[2] * 256+b[3];
return s;
}
⑧boolean类型转换为String
例一:Boolean b=true;
String str1=b.valueOf(b);
例二:
Boolean b=new Boolean(true);
String str2=b.toString();