在Java中,基本数据类型(如int
, double
, boolean
等)有对应的包装类(如Integer
, Double
, Boolean
等)。这些包装类提供了很多有用的方法,比如类型转换、与字符串之间的转换等。下面是一些关于基本数据类型、包装类与字符串之间如何相互转换的例子。
基本数据类型与包装类之间的转换
自动装箱(Autoboxing)
当你将一个基本数据类型的值赋给一个包装类对象时,Java会自动进行装箱操作。
int primitiveInt = 10;
Integer wrapperInt = primitiveInt; // 自动装箱
自动拆箱(Autounboxing)
当你将一个包装类对象赋给一个基本数据类型变量时,Java会自动进行拆箱操作。
Integer wrapperInt = 10;
int primitiveInt = wrapperInt; // 自动拆箱
包装类与字符串之间的转换
包装类转换为字符串
可以使用toString()
方法或字符串连接符(+
)来将包装类对象转换为字符串。
Integer wrapperInt = 10;
String stringFromInt = wrapperInt.toString(); // 使用toString()方法
String anotherStringFromInt = "" + wrapperInt; // 使用字符串连接符
字符串转换为包装类
可以使用包装类提供的静态方法valueOf()
或parseXXX()
(如parseInt()
, parseDouble()
等)来将字符串转换为对应的包装类对象。
String stringInt = "10";
Integer wrapperInt = Integer.valueOf(stringInt); // 使用valueOf()方法
// 或者
Integer anotherWrapperInt = Integer.parseInt(stringInt); // 使用parseInt()方法
注意:parseInt()
等方法会抛出NumberFormatException
,如果字符串不能被解析为有效的数字。因此,在使用这些方法时,最好使用try-catch块来捕获和处理可能的异常。
示例代码
下面是一个包含上述转换的示例代码:
public class TypeConversion {public static void main(String[] args) {// 基本数据类型与包装类之间的转换int primitiveInt = 10;Integer wrapperInt = primitiveInt; // 自动装箱int unwrappedInt = wrapperInt; // 自动拆箱System.out.println("Unwrapped int: " + unwrappedInt);// 包装类转换为字符串String stringFromInt = wrapperInt.toString();System.out.println("String from int: " + stringFromInt);// 字符串转换为包装类String stringDouble = "3.14";Double wrapperDouble = Double.valueOf(stringDouble);System.out.println("Wrapper double: " + wrapperDouble);// 使用try-catch处理可能的异常try {int numberFromString = Integer.parseInt("not a number");System.out.println("Parsed int: " + numberFromString);} catch (NumberFormatException e) {System.out.println("Could not parse string to int: " + e.getMessage());}}
}