Java官方文档[1]的解释

public static int parseInt​(String s) throws NumberFormatException
Parses the string argument as a signed decimal integer. The characters in the string must all be
decimal digits, except that the first character may be an ASCII minus sign ‘-’ (’\u002D’) to indicate
a negative value or an ASCII plus sign ‘+’ (’\u002B’) to indicate a positive value. The resulting
integer value is returned, exactly as if the argument and the radix 10 were given as arguments to
the parseInt(java.lang.String, int) method.
_
Parameters:
s - a String containing the int representation to be parsed
Returns:
the integer value represented by the argument in decimal.
Throws:
NumberFormatException - if the string does not contain a parsable integer.

中文翻译

我来简单翻译一部分。

对于Integer类的静态方法public static int parseInt​(String s) throws NumberFormatException
它能够将String类型的参数,解析为一个带符号的十进制整数。字符串中的字符,必须是十进制数字,在这个十进制数字的第一个字符前,可以是ASCII字符的-或Unicode字符的'\u002D来表明这是一个负值,或者是一个ASCII字符的+或Unicode字符的'\u002B来表明这是一个正值。这个作为结果的整数值会被return,如果使用方法parseInt(java.lang.String, int)并为其传参(String s,10)也能达到和当前方法一样的效果。

  • 参数:

    • s: 一个要被解析的字符串,这个字符串看起来是一个整数
  • 返回值:
    • 一个整数值,它由十进制数字表示
  • 异常抛出:
    • NumberFormatException:如果字符串没有包含可以被解析的整数

极简解释 & 应用

简而言之,我们就是要将String类型的整数转化成int类型的整数。

字符串只允许出现十进制数字、正号(+)和负号(-),当然,如果是Unicode编码也可以,一般不会这样用。

我们先来列举一些正确的例子,如:

  1. "100"–>100
  2. "-100"–>-100
  3. "+200"–>200

示例代码:

String s = "100";
int sToInt = Integer.parseInt(s);

但是,如果字符串出现了其他符号,就会抛出NumberFormatException

例如:

  1. "1.1"
  2. "abc"
  3. "&%#"

我们需要捕获并且处理这个异常,给出一个示例代码。

public class TestSubmitException {public static void main(String[] args) {String[] salesOrders = {"1111", "28120821", "-111", "+1111", "1.11", "abc"};submitOrders(salesOrders);}public static void submitOrders(String[] salesOrders) {int[] salesOrdersInteger = new int[salesOrders.length];try {int i = 0;for (String s : salesOrders) {salesOrdersInteger[i] = Integer.parseInt(s);i++;}} catch (NumberFormatException e) { e.printStackTrace();}for (int a : salesOrdersInteger) {System.out.println(a);}}
}

运行结果是

java.lang.NumberFormatException: For input string: "1.11"at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)at java.base/java.lang.Integer.parseInt(Integer.java:652)at java.base/java.lang.Integer.parseInt(Integer.java:770)at testCode.TestSubmitException.submitOrders(TestSubmitException.java:35)at testCode.TestSubmitException.main(TestSubmitException.java:21)
1111
28120821
-111
1111
0
0Process finished with exit code 0

我们可以看到最后Process finished with exit code 0,说明程序,成功处理了异常并且正常退出了。

参考资料

[1] Java11官方文档 Integer.parseInt(String s)

【Java】字符串转换为数字:Integer的parseInt方法相关推荐

  1. 在 JavaScript 中将字符串转换为数字的 7 种方法

    1. 使用 parseInt() parseInt()解析一个字符串并返回一个整数.允许空格.仅返回第一个数字. 这种方法虽然有一个限制.如果您解析十进制数,它将四舍五入到最接近的整数值,并将该值转换 ...

  2. 在javascript中将字符串转换为数字的6种方法

    在javascript中,数字可以用两种不同的方式表示, 1.作为实际数字. 2. 作为字符串 . 很多时候,我们需要在javascript中将字符串转换为数字. 我们将看到6种不同的方法可以将字符串 ...

  3. 把有时分秒的时间字符串转换为数字的时间戳的方法。

    <script>let date = '2023-01-01 00:00:00';date = date.substring(0, 19).replace(/-/g, '/');var t ...

  4. java 如何将数值型字符转换为数字_Java 如何将字符串转换为数字 专家详解

    在编程中我们经常需要进行各种数据类型之间的转换操作,下面将为您介绍如何将字符串转换为数字.首先我们需要了解各种数据类型的表示,String在java中为字符串类型,int在java中为整数类型,大小在 ...

  5. java字符串转数字,各种数字转字符串的3种方法

    java字符串转数字的方法 1.转化为int型数字 Integer.parseInt(String s)                   Integer.valueOf(String s); 2. ...

  6. C语言实现将字符串转换为数字的方法

    C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: 代码如下: # include <stdio. h ...

  7. C语言中将字符串转换为数字的方法

    C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: # include <stdio. h> # ...

  8. Oracle中将字符串转换为数字、to_number()函数的使用方法

    Oracle将字符串转换为数字 将char或者varchar2类型的String转换为数值类型的格式,需要注意的是,被转换的字符串必须符合数值类型格式,否则报错. 1.to_number()函数的使用 ...

  9. JavaScript字符串转数字的5种方法及其陷阱

    2019独角兽企业重金招聘Python工程师标准>>> 摘要 :JavaScript 是一个神奇的语言,字符串转数字有 5 种方法,各有各的坑法! 原文: Converting St ...

  10. c++ascii码转换为数字_在C++中将字符串转换为数字

    有许多情况需要将数字转换为字符串或将字符串转换为数字.本文中提到了一些实现此任务的方法. 将字符串转换为数字 方法1:使用stringstream类或sscanf() 方法2:使用stoi()或ato ...

最新文章

  1. 阿里云文件存储和自我管理的云解决方案的TCO比较
  2. 关于指针和链表中的一些问题
  3. python实习做什么工作-实习工作 - python挖掘 - 博客园
  4. C++实现平衡二叉树
  5. webpack4.x开发环境配置
  6. 启明云端分享| 2.4寸磁编码旋钮屏
  7. 非参数密度估计(直方图与核密度估计)
  8. Bigo 实时计算平台建设实践
  9. php怎么取随机3位数字,使用php怎么从指定数字中获取随机组合
  10. 膨胀的JavaBeans –不要在您的API中添加“ Getters”
  11. Python 命令行传参
  12. Sharding-Proxy分库配置_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记020
  13. 【金融申请评分卡】数据准备 - 造衍生变量
  14. 懵圈了,面试官问一个 TCP 连接可发多少个 HTTP 请求?
  15. Java通过 JDBC 连接数据库操作
  16. 基于web的博客系统的设计与实现
  17. 小马哥-----高仿苹果6 plus刷机拆机多图展示 拆机主板图与开机界面图 6572芯片 v76机型
  18. 单片机MCU学习方法总结
  19. 自制美容面膜 简单实用方便让你大换肤 - 健康程序员,至尚生活!
  20. 如何计算机使用ssd硬盘启动,如何设置电脑固态硬盘为第一启动

热门文章

  1. linux常用命令-压缩解压命令
  2. UITabBarController使用总结
  3. Adroid学习之 从源码角度分析-禁止使用回退按钮方案
  4. apache2.4.x三种MPM介绍
  5. Virtools自己编译播放器
  6. 计算机网络层实验路由表苏州科技,苏州科技大学计算机网络实验报告课案.docx...
  7. php 复制行,phpstorm怎么快速复制当前行?
  8. java 不编译咋办_java – 为什么JVM不编译整个程序,而不是逐个编译?
  9. oracle 创交表,创建交叉报表(oracle)_oracle
  10. 无法访问netflix服务_Choerodon 的微服务之路(三):服务注册与发现