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