如何把字符转换成数字 java
方法一:使用 Integer.parseInt() 或 Double.parseDouble()
Integer.parseInt() 用于将字符串转换为整数,Double.parseDouble() 用于将字符串转换为浮点数。这两种方法适用于字符串内容为纯数字的情况。
String strNum = "123";
int num = Integer.parseInt(strNum); // 转换为整数
System.out.println(num); // 输出 123
String strDouble = "3.14";
double dNum = Double.parseDouble(strDouble); // 转换为浮点数
System.out.println(dNum); // 输出 3.14
如果字符串包含非数字字符(如字母或符号),会抛出 NumberFormatException,因此建议在转换前检查字符串格式。
方法二:使用 valueOf() 方法
Integer.valueOf() 和 Double.valueOf() 也可以实现字符串到数字的转换,返回的是包装类对象(Integer 或 Double),但可以通过自动拆箱转为基本类型。
String strNum = "456";
Integer numObj = Integer.valueOf(strNum); // 转换为 Integer 对象
int num = numObj; // 自动拆箱为 int
System.out.println(num); // 输出 456
String strDouble = "2.718";
Double dNumObj = Double.valueOf(strDouble); // 转换为 Double 对象
double dNum = dNumObj; // 自动拆箱为 double
System.out.println(dNum); // 输出 2.718
方法三:处理非纯数字字符串
如果字符串包含非数字字符(如货币符号或空格),需要先清理字符串再转换。
String strMoney = "$100";
String cleanedStr = strMoney.replaceAll("[^0-9.]", ""); // 移除非数字字符
int money = Integer.parseInt(cleanedStr);
System.out.println(money); // 输出 100
方法四:使用 Scanner 类
Scanner 类可以逐个解析字符串中的数字,适用于混合文本和数字的场景。
String mixedStr = "Price: 99.99";
Scanner scanner = new Scanner(mixedStr);
scanner.useDelimiter("[^0-9.]+"); // 设置分隔符为非数字字符
double price = scanner.nextDouble();
System.out.println(price); // 输出 99.99
scanner.close();
方法五:处理异常情况
在转换前检查字符串是否为有效数字,避免程序因异常终止。

String strInput = "123abc";
try {
int num = Integer.parseInt(strInput);
System.out.println(num);
} catch (NumberFormatException e) {
System.out.println("输入不是有效的数字");
}
注意事项
- 异常处理:始终捕获
NumberFormatException,尤其是处理用户输入或外部数据时。 - 空字符串:转换前检查字符串是否为空(
str.isEmpty())。 - 进制转换:
Integer.parseInt(str, radix)支持其他进制(如二进制、十六进制)。String hexStr = "1A"; int decimal = Integer.parseInt(hexStr, 16); // 十六进制转十进制 System.out.println(decimal); // 输出 26






