Java中将字符串数字转换成数字类型的多种方法

 更新时间:2025年08月18日 09:32:01   作者:detayun  
这篇文章主要介绍了Java中将字符串数字转换成数字类型的多种方法,Java中字符串转数字可用parseXXX方法、自动类型推断、异常处理、BigDecimal及Apache库实现,需注意格式验证、数据可靠性、精度及性能选择,尤其处理用户输入时推荐带异常处理方案,需要的朋友可以参考下

在Java中将字符串数字转换为数字类型有多种方法,以下是详细说明和示例代码:

一、基础转换方法

  1. Integer.parseInt()
String str = "123";
int num = Integer.parseInt(str); // 转换为int
  1. Double.parseDouble()
String str = "3.14";
double num = Double.parseDouble(str); // 转换为double
  1. Long.parseLong()
String str = "9876543210";
long num = Long.parseLong(str); // 转换为long

二、处理进制转换

String hexStr = "1A";
int decimal = Integer.parseInt(hexStr, 16); // 十六进制转十进制 → 26

String binaryStr = "1010";
int decimal = Integer.parseInt(binaryStr, 2); // 二进制转十进制 → 10

三、自动类型推断(Java 8+)

String str = "42";
Integer num = Integer.valueOf(str); // 返回Integer对象
Double d = Double.valueOf("3.1415"); // 返回Double对象

四、异常处理

try {
    String input = "12a3";
    int number = Integer.parseInt(input);
} catch (NumberFormatException e) {
    System.out.println("无效的数字格式: " + e.getMessage());
}

五、高级处理方案

  1. 使用Scanner
String str = "42.5";
Scanner scanner = new Scanner(str);
double num = scanner.nextDouble(); // 自动识别数字类型
  1. BigDecimal处理高精度
String str = "12345678901234567890.12345";
BigDecimal bigDecimal = new BigDecimal(str);
  1. Apache Commons Lang
// 需要添加依赖:commons-lang3
String str = "123";
if (NumberUtils.isParsable(str)) {
    int num = NumberUtils.toInt(str, 0); // 安全转换,失败返回默认值0
}

六、特殊场景处理

  1. 去除空格
String str = "  123  ";
int num = Integer.parseInt(str.trim());
  1. 处理千位分隔符
NumberFormat format = NumberFormat.getInstance(Locale.US);
Number number = format.parse("1,234,567"); // → 1234567

注意事项:

  1. 转换前建议使用正则表达式验证格式
String str = "123.45";
if (str.matches("-?\\d+(\\.\\d+)?")) {
    // 执行转换操作
}
  1. 超大数字处理建议使用BigInteger
String hugeNumber = "123456789012345678901234567890";
BigInteger bigInt = new BigInteger(hugeNumber);

选择方法时的考量因素:

  • 是否需要处理异常
  • 数字精度要求
  • 性能需求(直接解析 vs 对象转换)
  • 是否需要处理本地化格式
  • 输入数据的可靠性程度

建议根据具体场景选择最合适的方法,对于用户输入等不可靠数据源,推荐使用带异常处理的方案。

以上就是Java中将字符串数字转换成数字类型的多种方法的详细内容,更多关于Java字符串数字转换数字类型的资料请关注脚本之家其它相关文章!

相关文章

  • 编码实现从无序链表中移除重复项(C和JAVA实例)

    编码实现从无序链表中移除重复项(C和JAVA实例)

    如果不能使用临时缓存,你怎么实现无序链表中移除重复项(?C和JAVA实例无序链表中移除重复项。
    2013-10-10
  • java WSDL接口webService实现方式

    java WSDL接口webService实现方式

    这篇文章主要为大家详细介绍了java WSDL接口webService实现方式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • IDEA神器一键查看Java字节码及其他类信息插件

    IDEA神器一键查看Java字节码及其他类信息插件

    这篇文章主要为大家介绍了一款IDEA神器,可以一键查看Java字节码及其他类信息,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-01-01
  • Java 转义字符全解析从基础语法到安全编码实践(最新推荐)

    Java 转义字符全解析从基础语法到安全编码实践(最新推荐)

    本文详细介绍了Java中的转义字符,包括基础转义序列、Unicode转义、Java 15的文本块特性以及在正则表达式和安全编码中的应用,通过实例和最佳实践,帮助开发者正确使用转义字符,提高代码的正确性和安全性,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • Java中Scanner类与BufferReader类的不同点(非常详细)

    Java中Scanner类与BufferReader类的不同点(非常详细)

    这篇文章主要介绍了Java中Scanner类与BufferReader类的不同点(非常详细)的相关资料,需要的朋友可以参考下
    2016-08-08
  • Idea 同一窗口导入多个项目的实现步骤

    Idea 同一窗口导入多个项目的实现步骤

    本文主要介绍了Idea 同一窗口导入多个项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • maven报错:Failed to execute goal on project问题及解决

    maven报错:Failed to execute goal on p

    这篇文章主要介绍了maven报错:Failed to execute goal on project问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Java基础泛型详情

    Java基础泛型详情

    这篇文章主要介绍了Java基础泛型详情,泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型,下面文章的详细介绍,需要的朋友可以参考一下
    2022-04-04
  • 解析Tars-Java客户端源码

    解析Tars-Java客户端源码

    Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用
    2021-06-06
  • Java SSM实现前后端协议联调详解上篇

    Java SSM实现前后端协议联调详解上篇

    首先我们已经知道,在现在流行的“前后端完全分离”架构中,前后端联调是一个不可能避免的问题,这篇文章主要介绍了Java SSM实现前后端协议联调过程
    2022-08-08

最新评论