java转换数据类型
‘壹’ java中数据类型转换有几种每种转换都在什么情况下使用
java
中自动化转换和强制转换
自动转换就例如简单类型的转换,可以自动通过
如整形转换城FLOAT,或者double
有些字符串类型则被转换成相应的ascii码
而转换会产生溢出或者丢失的转换则需要编程者进行强制转换
相对的java中还有原始变量和java进行封装的数据类型的转换
float
f=10.01;
Float
F=new
Float(f);
每种转换根据编程需要使用。
‘贰’ JAVA基本数据类型转换
基本类型中byte、short、int、long
和
float、double
依次增大,当后者转换成前者时需要强制转换,例如:long
a
=
100L;int
b
=
(int)a
;
但前者转换成后者,则可以直接赋值,JVM会完成自动转换
‘叁’ Java基本数据类型转换
首先你要明确我们什么时候需要类型转换,在java中整形数据默认为int类型,浮点数据默认为double类型,举个例子给你看看int a=300;byte b;b=(byte)a;float c;double d=4545452.121;c=(float)d;一般只有当后面那个数据超过前面数据类型的范围的时候我们才进行转换,没超过的话可以直接放入其中
‘肆’ java数据类型转换方式有几种
如:String s = "123";
int num = Integer.parseInt(s);注意:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,会抛出异常java.lang.NumberFormatException
2、String类型转换成double类型变量:使用double类的parseDouble(String )方法
如:String s = "123";
idouble num = Double.parseDouble(s);
3、int类型变量转换成String类型变量:使用String类的valueOf(int )方法
如: int num = 123;
String s = String.valueOf(num);
4、Double类型变量转换成String类型变量:使用String类的valueOf(int )方法
如: Double num = 123.0;
String s = String.valueOf(num);
5、String变量转换成字符数组Char[]:使用String类的toCharArray()方法
如: String s = "123";
6、字符或字符数组转换成字符串,也是通过valueOf()方法,不再给出示例代码。
‘伍’ java 数据类型转换
java中数据类型是有个隐式的自动转换的.
byte,short,int和long都是整数,任何数字(如1,11,111等),只要不超过范围,都是可以赋值给byte,short,int类型的,但不能直接赋值给long,必须在后面加上L(大小写均可),任何char,byte,short,int之间的计算的结果都是int 型,
如题,
a = 1;把1赋给a,当然把1赋给byte是没有问题的,
a = a + 1 ; 这样就等于把int型赋给了byte型是会报错的.
a += 1 是自增运算,+=,-=,*=,/=等运算是不会转成其他类型的,此题中虽然结果与a = a + 1一样;
顺便展开一点讲,共有8种基本数据类型,顺要说明的是:byte,short,int,long,float,double,boolean,char
1.char,byte,short,int之间运算会自动转换为int,不包括自增与自减;
char会以ASCII码转换
2.如下链条,可以向下赋值,反之刚不行,比如,byte值可以赋给short变量,反之则不行.
3.数字默认类型是int,是不符合如下链条的例外情况,只要不超过范围可以赋值给char,byte,short等类型,比如可以byte a = 127是对的,byte a = 128是会编译错误的;
4.有小数点的都默认为为double型,加f变float,如2.5f
5.boolean只能逻辑运算
byte->short->int->long->float->double char->int
‘陆’ java数据类型转换
这很明显
第一 c=(int)d; 意思是把d的值强转为int类,然后赋给c,那么c自然也等于8000.
第二 f=(float)g; 意思是把double类型的g值,强转为float类型然后赋给f,因为float是单精度,所以结果就去掉小数点的一半.
‘柒’ java中各数据类型是如何实现强制类型转换的
转型有两种:
向上转型和向下转型(强制转型)
两种分别如下:
一种是向上转型对于基础数据类型
,
可以自动转型
,比如:int
a
=
10;long
b
=
a;这里就是把int型转成了long型
,
因为
long范围比int大
,
这样的转型不会有任何影响
,
所以可以自动转型
又比如
A
a
=
new
B();
其中
A
是B
的父类
,
这也是多态
,
就是父类的对象指向子类的引用
,
你调用a对象
,
实际上是B的类
,
但是B继承A
,
拥有A的一切属性和方法
(不谈复写)
</ol>第二种是向下转型
,
也就是强制这种需要强转
,
比如long
a
=
10
;int
b
=
(int)
a;通过
(int)可以强制转型
,
但是这样会丢失精度
,
比如a如果超过了b的范围
,
那么强转成int型,
只会等于int的最大值又比如
:B
b
=
new
A();
这样是不行的
,
需要有中间途径
,
比如A
a
=
new
A();
Object
obj
=
a;
B
b
=
(A)
a;而这种强转
,
又有要求
,
必须是同类型
,
也就是说
A
就是B
,
不然会报错.</ol>不同类型之间如果要转型
,
需要通过中间途径
,
比如JSON
,
将A转成JSON串
,
然后再转换为B
</ol></ol>
‘捌’ java中关于数据类型转换
你自己看看就明白了
可能有很多程序员认为i+=1只是i=i+1的简写方式,其实不然,它们一个使用简单赋值运算,一个使用复合赋值运算,而简单赋值运算和复合赋值运算的最大差别就在于:复合赋值运算符会自动地将运算结果转型为其左操作数的类型。看看以下的两种写法,你就知道它们的差别在哪儿了:
(1) byte i=5;
i+=1;
(2) byte i=5;
i=i+1;
第一种写法编译没问题,而第二种写法却编译通不过。原因就在于,当使用复合赋值运算符进行操作时,即使右边算出的结果是int类型,系统也会将其值转化为左边的byte类型,而使用简单赋值运算时没有这样的优待,系统会认为将i+1的值赋给i是将int类型赋给byte,所以要求强制转换。理解了这一点后,我们再来看一个例子:
byte b=120;
b+=20;
System.out.println("b="+b);
说到这里你应该明白了,上例中输出b的值不是140,而是-116。因为120+20的值已经超出了一个byte表示的范围,而当我们使用复合赋值运算时系统会自动作类型的转化,将140强转成byte,所以得到是-116。由此可见,在使用复合赋值运算符时还得小心,因为这种类型转换是在不知不觉中进行的,所以得到的结果就有可能和你的预想不一样。
‘玖’ java数据类型及转换
强制转换和自动的转换,
package com.tx.DATI;
public class PaiXu {
public static void main(String[] args) {
float a=2.3f;
float b=3.3f;
int c=(int) (a+b);
System.out.println(c);
}
}
jieguo:5
‘拾’ java大神 字符串的转换基本数据类型
1. 字符串转换为数字
java.lang中的Integer类调用其类方法public static int parseInt(String s)可以将由“数字”字符组成的字符串,比如“876”转换为int数据类型,例如:
int x;
String s = "876";
x = Integer.parseInt(s);
类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调用相应的类方法
public static byte parseByte(String s) throws NumberFormatException
public static short parseShort(String s) throws NumberFormatException
public static long parseLong(String s) throws NumberFormatException
public static double parseDouble(String s) throws NumberFormatException
2. 可以使用下面的方法将数字转化为相应的字符串对象:
① valueOf方法
public static String valueOf(byte n)
public static String valueOf(int n)
public static String valueOf(long n)
public static String valueOf(float n)
public static String valueOf(double n)
例如:将形如123,12345.8等数值转换为字符串
String str = String.valueOf(123)
String str = String.valueOf(12345.8)
② 可以使用toString方法(一个对象通过调用该方法可以获取该对象的字符串表示)
使用java.lang包中的Byte、Integer、Short、Long、Float、Double类调用相应的类方法,Integer.toString、Double.toString,等等
比较常用的是Integer.toString("要进行转换的数字"),方法得到的是一个字符串的对象
例子:
int n = 123;
String m = Integer.toString(n);
System.out.println(m + 1);
Date date = new Date();
System.out.println(date.toString());
所以我们可以使用上面的方法将数字转化为一个字符串
3. 字符串与字符数组
① 将字符数组转换为字符串对象
使用String类的构造方法:String(char a[])和String(char a[],int offset,int length)
分别用数组a中的全部字符和部分字符构造字符串对象
例子:
char a[] = {'1','2','3'};
System.out.println(new String(a).length());