热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

Java官方文档[1]的解释publicstaticintparseInt​(Strings)throwsNumberFormatExceptionParsesthestringa

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代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
author-avatar
Effy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有