java如何将字符串转换为数字
使用 Integer.parseInt() 方法
将字符串转换为整数类型(int)。适用于字符串内容为整数的场景。
String str = "123";
int num = Integer.parseInt(str);
如果字符串包含非数字字符,会抛出 NumberFormatException,建议使用 try-catch 处理异常。
使用 Integer.valueOf() 方法
返回 Integer 对象(包装类),可通过自动拆箱转为 int。
String str = "456";
Integer numObj = Integer.valueOf(str);
int num = numObj; // 自动拆箱
同样需要注意非数字字符的异常情况。
使用 Double.parseDouble() 方法
将字符串转换为浮点数类型(double)。适用于带小数点的字符串。
String str = "3.14";
double num = Double.parseDouble(str);
使用 Long.parseLong() 方法
处理长整型数字的字符串转换。
String str = "9876543210";
long num = Long.parseLong(str);
处理进制转换
若字符串表示其他进制的数字(如二进制、十六进制),可指定基数参数。
String binaryStr = "1010";
int decimalNum = Integer.parseInt(binaryStr, 2); // 二进制转十进制
String hexStr = "FF";
int decimalValue = Integer.parseInt(hexStr, 16); // 十六进制转十进制
使用 Scanner 类
适合从复杂输入中提取数字,例如混合文本和数字的字符串。
String str = "Value: 42";
Scanner scanner = new Scanner(str);
scanner.useDelimiter("[^0-9]+"); // 非数字作为分隔符
int num = scanner.nextInt();
scanner.close();
异常处理建议
所有转换方法都可能因格式错误抛出 NumberFormatException,推荐以下处理方式:
String str = "abc123";
try {
int num = Integer.parseInt(str);
} catch (NumberFormatException e) {
System.err.println("字符串格式无效: " + e.getMessage());
}






