1、Java 类型转换
类型转换是将一种数据类型的值分配给另一种类型时的类型转换。
在Java中,有两种类型的转换:
- 自动转换(自动)-将较小的类型转换为较大的类型
byte
->short
->char
->int
->long
->float
->double
- 强制转换(手动)-将较大的类型转换为较小的类型
double
->float
->long
->int
->char
->short
->byte
2、自动数据类型转换
将较小数据的类型传给较大数据的类型时,将自动完成转换:
例如:
public class main { public static void main(String[] args) { int myInt = 9; double myDouble = myInt; // 自动转换: int 转换成 double System.out.println(myInt); // 输出 9 System.out.println(myDouble); // 输出 9.0 } }
3、强制数据类型转换
强制数据类型转换是手动将较大范围数据转换较小数据类型,格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型。有的数据经过转型运算后,精度会丢失,而有的会更加精确。
例如:
public class main { public static void main(String[] args) { double myDouble = 9.78; int myInt = (int) myDouble; // 手动转换: double 转换成 int System.out.println(myDouble); // 输出 9.78 System.out.println(myInt); // 输出 9 int x; double y; x = (int)34.56 + (int)11.2; // 丢失精度 y = (double)x + (double)10 + 1; // 提高精度 System.out.println("x=" + x); System.out.println("y=" + y); } }
4、各种数据类型的互相转换
数据类型 | 转换为其他类型 | 转换为字符串 | 转换为字符串 |
byte | Byte.parseByte(str) | String.valueOf([byte] bt) | Byte.toString([byte] bt) |
int | Integer.parseInt(str) | String.valueOf([int] i) | Int.toString([int] i) |
long | Long.parseLong(str) | String.valueOf([long] l) | Long.toString([long] l) |
float | Float.parseFloat(str) | String.valueOf([float] f) | Float.toString([float] f) |
double | double.parseDouble(str) | String.valueOf([double] d) | Double.toString([double] b) |
char | str.charAt() | String.valueOf([char] c) | Character.toString([char] c) |
boolean | Boolean.getBoolean(str) | String.valueOf([boolean] b) | Boolean.toString([boolean] b) |
StringBuilder转化为String
String str = "abcdefghijklmnopqrs"; StringBuilder stb = new StringBuilder(str);
整型数组转化为字符串
StringBuilder s = new StringBuilder(); for(i=1;i<=n;i++) { s.append(String.valueOf(a[i])); } String str = ""+s;
字符串转化为整形数组
String str="123456"; int[] a = new int[str.length()]; for(int i=0;i<str.length();i++) { a[i] = str.charAt(i)-'0'; }
字符串转化为字符数组
String str="123456"; char[] c = str.toCharArray() ; System.out.println(c);
字符数组转化为字符串
char[] c = {'a','s','d','4','5',}; String str = new String(c); System.out.println(str);
字符数组转化为整型数组
public class main { public static void main(String[] args) { String str="12345p"; int[] a = new int[str.length()]; for(int i=0;i<str.length();i++) { a[i] = str.charAt(i)-'0'; System.out.println(a[i]); } } }
整型数组转化为字符数组
int[] a = {1,2,3,4,5}; char[] c = new char[a.length]; for (int i = 0; i < 5; i++) { c[i] = (char) (a[i]+'0'); System.out.println(c[i]); }
整型数转化为字符串
String str = Integer.toString(i); String s = String.valueOf(i); String s = "" + i;
字符串转化为整型数
int i = Integer.valueOf(str).intValue();