面试题:如何将数值型字符转换为数字 (Integer,Double) ?

在 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. 总结

目标类型方法示例代码
intInteger.parseInt()int num = Integer.parseInt("123");
IntegerInteger.valueOf()Integer num = Integer.valueOf("123");
doubleDouble.parseDouble()double num = Double.parseDouble("123.45");
DoubleDouble.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
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容