Java如何将字符串String转换为整型Int
作者:码说TM 发布时间:2023-11-10 21:40:19
用法
在java中经常会遇到需要对数据进行类型转换的场景,String类型的数据转为Int类型属于比较常见的场景,主要有两种转换方法:
1. 使用Integer.parseInt(String)方法
2. 使用Integer.valueOf(String)方法
具体demo如下:
public void convert() {
// 1.使用Integer.parseInt(String)
String str1 = "31";
Integer num1 = Integer.parseInt(str1);
System.out.print("字符串31转换为数字:");
System.out.println(num1);
// 2.使用Integer.valueOf(String)
String str2 = "32";
Integer num2 = Integer.valueOf(str2);
System.out.print("字符串32转换为数字:");
System.out.println(num2);
}
执行结果:
根据执行结果可见,两种方式都能完成字符串到整型的转换。
注意点
但需要注意的是,使用这两种方法都有一个前提,那就是待转换字符串的内容必须为纯数字。
不难发现上面demo中的待转换字符串都是"31"、"32"这种由纯数字组成的字符串,如果待转字符串中出现了除数字以外的其他字符,则程序会抛出异常。
如下demo所示,在字符串中加入小写英文字母,并用try-catch语句包裹代码段以捕捉会出现的异常。(因为我们已经知道,带字母的字符串转换为整型会出现数字格式转换的异常,所以选择catch NumberFormatException)
public void convert() {
// 1.Integer.parseInt(String)
try {
String str1 = "31a";
Integer num1 = Integer.parseInt(str1);
System.out.print("字符串31a转换为数字:");
System.out.println(num1);
} catch (NumberFormatException e) {
System.out.println("Integer.parseInt(String)方法执行异常");
e.printStackTrace();
}
// 1.Integer.valueOf(String)
try {
String str2 = "32b";
Integer num2 = Integer.valueOf(str2);
System.out.print("字符串32b转换为数字:");
System.out.println(num2);
} catch (NumberFormatException e) {
System.out.println("Integer.valueOf(String)方法执行异常");
e.printStackTrace();
}
}
从执行结果可见,这段代码分别在Integer.parseInt(String)方法和Integer.valueOf(String)位置触发了NumberFormatException,其原因都是被转换的字符串中存在英文字母,无法转换成整型。
性能比较
我们可以通过使用System.nanoTime()来查看两种方法执行的时间差
public static void convert() {
// 1.Integer.parseInt(String)
String str1 = "321";
long before1 = System.nanoTime();
Integer.parseInt(str1);
long interval1 = System.nanoTime() - before1;
System.out.print("Integer.parseInt(String)的执行时长(纳秒):");
System.out.println(interval1);
// 1.Integer.valueOf(String)
String str2 = "332";
long before2 = System.nanoTime();
Integer.valueOf(str2);
long interval2 = System.nanoTime() - before2;
System.out.print("Integer.valueOf(String)的执行时长(纳秒):");
System.out.println(interval2);
}
其中,interval1和interval2的值分别指两个方法的执行前后系统时间之差,单位是纳秒,执行多次后均可发现,Integer.valueOf(String)方法的执行时长要小于Integer.parseInt(String)方法,性能更优
来源:https://blog.csdn.net/qq_33323054/article/details/126256907


猜你喜欢
- 什么是数组数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每
- springboot跳转到指定页面controller的写法必须是templates下面的页面,不经过配置,无法直接跳转到public,st
- 现在项目中有使用到音视频相关技术,在参考了网上各种大牛的资料及根据自己项目实际情况(兼容安卓6.0以上版本动态权限管理等),把声音录制及播放
- 上一篇博文说到了Shader的五个子类 - BitmapShader - LinearGradient - RadialGradient -
- 基本概念servlet 关系servlet 和 servletconfig 是一对一的关系;servletconfig 作用它存储 web.
- 类:NameII 权限:public方法:main 权限:publi
- Android studio so库找不到问题解决办法问题:java.lang.UnsatisfiedLinkError: dalvik.s
- 在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用M
- 概述从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章.队列队列 (Queue) 遵循先进先出的原则 (Firs
- 只要是开发和手机通讯录有关的应用,总要学会获取联系人信息,每次都google很麻烦,怎么办?写一个工具类,获取到通讯录里所有的信息并分好类,
- Commons Beanutils是Apache开源组
- 转发和重定向相同点都是web开发中资源跳转的方式。不同点转发:是服务器内部的跳转,浏览器的地址栏不会发生变化。从一个页面到另一个页面的跳转还
- 利用javax.swing.Timer类设计并实现一个模拟秒表功能的应用程序。程序中显示不断递增的时间,同时包含允许用户启动和终止计时功能的
- 本文实现了C#隐式运行CMD命令的功能。下图是实例程序的主画面。在命令文本框输入DOS命令,点击“Run”按钮,在下面的文本框中输出运行结果
- 1.概述在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要
- 用法一:常量在JDK1.5之前,我们定义常量都是:publicstaticfianl....。现在好了,有了枚举,可以把相关的常量分组到一个
- 多线程安全嘛在 Spring 框架中,Bean 是应用程序的核心构建块,代表了在 Spring 容器中管理的对象或组件。Spring 容器负
- 前言:众所周知,大家在很多项目中都会使用到图表,具体表现形式为饼图、折线图、柱状图等,但是网上有很多图表架包都是需要收费的,而Google的
- 关于数据绑定Xamarin 单向、双向绑定Xaml绑定C#代码绑定在此之前,几段 伪代码 帮助像我一样菜的同学入门。。。假如说,有两个控件,
- 方式1:dependency 本地jar包<dependency> <groupId>com.jouyp