在 Java 中,将数值型字符或字符串转换为数字(如 Integer
或 Double
)是常见的操作。以下是几种常用的方法:
1. 将字符串转换为 Integer
方法 1:使用 Integer.parseInt()
- 将字符串转换为
int
基本类型。 - 如果字符串不是有效的整数格式,会抛出
NumberFormatException
。
String str = "123";
int num = Integer.parseInt(str);
System.out.println(num); // 输出 123
方法 2:使用 Integer.valueOf()
- 将字符串转换为
Integer
对象。 - 如果字符串不是有效的整数格式,会抛出
NumberFormatException
。
String str = "123";
Integer num = Integer.valueOf(str);
System.out.println(num); // 输出 123
2. 将字符串转换为 Double
方法 1:使用 Double.parseDouble()
- 将字符串转换为
double
基本类型。 - 如果字符串不是有效的浮点数格式,会抛出
NumberFormatException
。
String str = "123.45";
double num = Double.parseDouble(str);
System.out.println(num); // 输出 123.45
方法 2:使用 Double.valueOf()
- 将字符串转换为
Double
对象。 - 如果字符串不是有效的浮点数格式,会抛出
NumberFormatException
。
String str = "123.45";
Double num = Double.valueOf(str);
System.out.println(num); // 输出 123.45
3. 将字符转换为数字
如果是一个字符(如 '5'
),可以通过以下方式将其转换为数字:
方法 1:使用 Character.getNumericValue()
- 将字符转换为对应的数字值。
- 例如,字符
'5'
转换为数字5
。
char ch = '5';
int num = Character.getNumericValue(ch);
System.out.println(num); // 输出 5
方法 2:通过 ASCII 值计算
- 字符
'0'
到'9'
的 ASCII 值是连续的,可以通过减去'0'
的 ASCII 值得到对应的数字。 - 例如,
'5' - '0'
的结果是5
。
char ch = '5';
int num = ch - '0';
System.out.println(num); // 输出 5
4. 处理异常情况
在转换过程中,如果字符串不是有效的数字格式(如包含非数字字符),会抛出 NumberFormatException
。因此,通常需要捕获异常以确保程序的健壮性。
示例:
String str = "123abc";
try {
int num = Integer.parseInt(str);
System.out.println(num);
} catch (NumberFormatException e) {
System.out.println("字符串不是有效的数字格式");
}
5. 总结
目标类型 | 方法 | 示例代码 |
---|---|---|
int | Integer.parseInt() | int num = Integer.parseInt("123"); |
Integer | Integer.valueOf() | Integer num = Integer.valueOf("123"); |
double | Double.parseDouble() | double num = Double.parseDouble("123.45"); |
Double | Double.valueOf() | Double num = Double.valueOf("123.45"); |
字符转数字 | Character.getNumericValue() | int num = Character.getNumericValue('5'); |
字符转数字 | ASCII 值计算 | int num = '5' - '0'; |
关键点:
- 使用
Integer.parseInt()
或Integer.valueOf()
将字符串转换为整数。 - 使用
Double.parseDouble()
或Double.valueOf()
将字符串转换为浮点数。 - 使用
Character.getNumericValue()
或 ASCII 值计算将字符转换为数字。 - 注意捕获
NumberFormatException
异常,以处理无效的输入格式。
THE END
暂无评论内容