在 Java 中,我们可以使用 Integer.parseInt() 或 Integer.valueOf() 将 String 转换为 int。Integer.parseInt() – 返回原始整数。Integer.valueOf() – 返回一个 Integer 对象。
对于字符串中的位置或负数,转换是相同的
  String number = "-7";// result = -7int result = Integer.parseInt(number);// result2 = -7Integer result2 = Integer.valueOf(number);
1.Integer.java
1.1 查阅JDK源码中Integer类,两个方法签名是一样的,都是使用parseInt(s,10)进行转换,但是返回的结果不同
Integer.javapackage java.lang;public final class Integer extends Numberimplements Comparable<Integer>, Constable, ConstantDesc {public static Integer valueOf(String s) throws NumberFormatException {return Integer.valueOf(parseInt(s, 10));}public static int parseInt(String s) throws NumberFormatException {return parseInt(s,10);}//...
}
2. 数字格式异常
2.1 如果输入不是有效数字,Integer.parseInt() 和 Integer.valueOf(String) 方法都会抛出 NumberFormatException
String number = "10AA";Integer result = Integer.parseInt(number);

输出:

Terminaljava.lang.NumberFormatException: For input string: "10A"at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)at java.base/java.lang.Integer.parseInt(Integer.java:658)at java.base/java.lang.Integer.valueOf(Integer.java:989)
3. Integer.parseInt() – 将字符串转换为整数
3.1 本示例将字符串 999 转换为原始类型 int。
StringExample1.javapackage com.mkyong;public class StringExample1 {public static void main(String[] args) {String number = "999";try {int result = Integer.parseInt(number);System.out.println(result);} catch (NumberFormatException e) {System.err.println("Unable to convert input string :" + number + " to int");}}}

输出:

Terminal999

4. Integer.valueOf – 将字符串转换为整数

4.1 本示例将字符串 123 转换为 Integer 对象

StringExample2.javapackage com.mkyong;public class StringExample2 {public static void main(String[] args) {String number = "123";try {Integer result = Integer.valueOf(number);System.out.println(result);} catch (NumberFormatException e) {System.err.println("Unable to convert input string :" + number + " to Integer");}}}
5. 最佳实践 – isDigit() + Integer.parseInt
最佳做法是检查输入;抛出的 NumberFormatException 代价很高。5.1 回顾下面的例子,我们使用正则表达式 String.matches("[0-9]*") 来检查输入是否为有效数字。
StringExample3.javapackage com.mkyong;public class StringExample3 {public static void main(String[] args) {String number = "-100";if (isDigit(number)) {System.out.println(Integer.parseInt(number));} else {System.out.println("Please provide a valid digit [0-9]");}}public static boolean isDigit(String input) {// null or length < 0, return false.if (input == null || input.length() < 0)return false;// empty, return falseinput = input.trim();if ("".equals(input))return false;if (input.startsWith("-")) {// negative number in string, cut the first charreturn input.substring(1).matches("[0-9]*");} else {// positive number, good, just checkreturn input.matches("[0-9]*");}}}
6. Java 8
6.1 开发者喜欢Java 8,这个例子尝试使用Java 8 Optional 和Stream 将String 转换为Integer
StringExample4.javapackage com.mkyong;import java.util.Optional;public class StringExample4 {public static void main(String[] args) {String number = "10";Optional<Integer> result = Optional.ofNullable(number).filter(StringExample3::isDigit).map(Integer::parseInt);if (result.isEmpty()) {System.out.println("Please provide a valid digit [0-9]");} else {System.out.println(result.get());}}}

Java:字符串(String)类型转成整型(int)的方法相关推荐

  1. java char数组转string数组_Java中char数组(字符数组)与字符串String类型的转换方法...

    本文实例讲述了Java中char数组(字符数组)与字符串String类型的转换方法.分享给大家供大家参考,具体如下: 在Java语言编程时,使用"口令字段"jPasswordFie ...

  2. 26.【C语言】字符串转无符号整型unsignedint、字符串转有符号整型int、无符号整型unsignedint转字符串、有符号整型转字符串(5_task)

    算法思想: 1. 字符串转无符号整型unsignedint 初始化一个字符串str:num用于存放当前转换的整型数,初始化为0.对字符串str中的每个字符进行判断,一旦扫描到当前字符在数字字符的范围之 ...

  3. java string设置编码_详解Java中String类型与默认字符编码

    为什么写这个 至于为什么要写这个,主要是一句mmp一定要讲,绕了一上午,晕死 Java程序中的中文乱码问题一直是一个困扰程序员的难题,自己也不例外,早在做项目时就遇到过很多编码方式的坑,当时想填来着, ...

  4. java.lang.date_无法将java.lang.String类型的值转换为必需类型java.util.Date

    from date: to date: Trouver 这是控制器代码部分: @RequestParam(name = "d1", defaultValue = "190 ...

  5. 数据结构——已知数组A[1…n] 的元素类型为整型int,设计一个时间和空间上尽可能高效的算法,将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,不要求对这些元素排序。

    题目:已知数组A[1-n] 的元素类型为整型int,设计一个时间和空间上尽可能高效的算法,将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,不要求对这些元素排序. 代码展示: #inclu ...

  6. java中字符串的创建_【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

  7. Java 字符串 String 与整数型 int 之间的转换

    1.如何将字串 String 转换成整数 int?   A. 有两个方法:   1). int i = Integer.parseInt([String]); 或   i = Integer.pars ...

  8. java语言特点 字符串不变_面试必问:Java中String类型为什么设计成不可变的?

    这几天在各大平台上都看到过这样一些帖子,全都是关于String类型对象不可变的问题,当然现在也是找工作的准备时期,因此花了一部分时间对其进行整理一下. 想要完全了解String,在这里我们需要解决以下 ...

  9. Java实现 String类型的ip与整数之间的相互转换(2021.8.1百度提前批面试题)

    题目: 实现 String 类型的 ip 与整数之间的相互转化.例如:将 "192.168.0.1" 转换为整数,然后给定这个整数仍然可以得到这个 String 类型的 ip. / ...

最新文章

  1. Spring Security过滤器就该这么配置!
  2. 忽略并存在数据损坏风险_内部审计快速启动数据分析的6个关键点
  3. 转:jQ函数after、append、appendTo的区别
  4. wordpress中安装插件需要ftp服务怎么破
  5. Springboot制作小网盘系统(小项目)
  6. 2021研发效能实践案例征集大赛
  7. python书写风格_以下两种风格 Python 写法,请问大家倾向哪种:)
  8. 【lucene】lucene自定义评分
  9. Change Eclipse Tooltip's Color in Ubuntu
  10. 华为宣布智能计算战略,全栈全场景,当企业智能化转型加速器
  11. 【php】使用phpdbg来调试php程序
  12. 聚类及聚类算法的分类
  13. 计算机无法u盘启动,电脑无法从u盘启动怎么办呢?
  14. css动画transition和animation实现遮罩动画
  15. 程序员技术面试与HR谈薪资技巧的一些经验心得
  16. VUE--Form表单
  17. 明星讲师心石闪耀ArchSummit大会 | 手机淘宝构架演化实践
  18. TransE模型的python代码实现
  19. App地推如何统计数据
  20. 狡猾的商人[HNOI2005]

热门文章

  1. 重温WIN32 API ------ 窗口上绘制位图文件
  2. 北理工计算机考研难易程度,北京理工大学考研难吗?一般要什么水平才可以进入?...
  3. 用前端技术实现一个脸萌
  4. 课程向:深度学习与人类语言处理 ——李宏毅,2020 (P17) 任务精简
  5. diskgeniuslinux版_下载:强大磁盘工具DiskGenius v3.0.1416 Beta 2
  6. 网站服务器加固方案,网站服务器的基础安全加固设置办法
  7. 财经类大学计算机专业就业,财经类高校学生就业前景如何?工资高吗?
  8. 论文《Adversarial Binary Coding for Efficient Person Re-identification》翻译笔记
  9. Java——图书借阅系统
  10. vue高德地图省市区,区域划分。district.search 一直报no_data