行业资讯 2025年08月6日
0 收藏 0 点赞 789 浏览 2169 个字
摘要 :

文章目录 1.使用Integer.parseInt() 1.1. 语法 1.2. 示例 1.3. 抛出NumberFormatException异常 2.使用Integer.valueOf() 4.结论 学会将Java String转换为int值。请注……




  • 1.使用Integer.parseInt()
    • 1.1. 语法
    • 1.2. 示例
    • 1.3. 抛出NumberFormatException异常
  • 2.使用Integer.valueOf()
  • 4.结论

学会将Java String转换int值。请注意,字符串可以包含普通的十进制值或其他进制或基数的不同值。

1.使用Integer.parseInt()

1.1. 语法

Integer.parseInt()方法将字符串解析为带符号的整数值。该方法是一个重载方法,具有以下参数:

  • string:要解析的字符串。
  • radix:解析时要使用的基数。
  • beginIndex:开始索引(包括在内)。
  • endIndex:结束索引(不包括在内)。
public static int parseInt(string) throws NumberFormatException { ... }
public static int parseInt(string, int radix) throws NumberFormatException { ... }
parseInt(string, int beginIndex, int endIndex, int radix) throws NumberFormatException { ... }

1.2. 示例

在以下Java程序中,我们使用上述三种方法解析字符串“1001”并验证输出结果。

Assertions.assertEquals(1001, Integer.parseInt(\"1001\"));
Assertions.assertEquals(513, Integer.parseInt(\"1001\", 8));
Assertions.assertEquals(1001, Integer.parseInt(\"amount=1001\", 7, 11, 10));

1.3. 抛出NumberFormatException异常

如果以下情况发生,这三种方法都会抛出NumberFormatException异常:

  • 参数字符串为null。
  • 参数字符串长度为零,即空字符串。
  • 参数字符串在指定的基数中无法解析为整数。默认基数为10。
Assertions.assertThrows(NumberFormatException.class, ()->{
  Integer.parseInt(null);
});
Assertions.assertThrows(NumberFormatException.class, ()->{
    Integer.parseInt(\"abc\");
});

2.使用Integer.valueOf()

Integer.valueOf()与parseInt()方法非常相似,唯一的区别是返回类型是Integer类型,而不是原始的int类型。实际上,如果我们查看valueOf()方法的源代码,它在内部调用了parseInt()方法。

它也有两种重载形式。请注意方法的返回类型是Integer。

public static Integer valueOf(String s) throws NumberFormatException {...}
public static Integer valueOf(String s, int radix) throws NumberFormatException {...}

这两种方法在所有情况下都会抛出NumberFormatException异常,与parseInt()类似。

Assertions.assertEquals(1001, Integer.valueOf(\"1001\"));
Assertions.assertEquals(513, Integer.valueOf(\"1001\", 8));
Assertions.assertThrows(NumberFormatException.class, ()->{
  Integer.valueOf(\"abc\");
});

3.使用Integer.decode()

Integer.decode()是另一种用于将字符串转换为整数的有用方法,但仅适用于十进制、十六进制和八进制数字。请注意以下几点:

  • 十进制数字可以以可选的正/负号开头,例如+100、-2022、334、404。
  • 八进制数字可以以可选的正/负号开头,然后是后缀‘0’(零)。例如,+0100、-02022、0334、0404。
  • 十六进制数字可以以可选的正/负号开头,然后是后缀‘0x’或‘0X’(零和大写X)。例如,+0x100、-0x2022、0x334、0x404。
public static Integer decode(String s) throws NumberFormatException

让我们看一个示例来更好地理解它。

Assertions.assertEquals(100, Integer.decode(\"+100\"));
Assertions.assertEquals(64, Integer.decode(\"+0100\"));
Assertions.assertEquals(256, Integer.decode(\"+0x100\"));

4.结论

在这个快速的Java教程中,我们学习了如何将字符串转换为int或Integer类型。我们还学会了如何解析十进制、八进制和十六进制格式的数字。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9164.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号