• Java如何将字符串String转换为整型Int


    用法

            在java中经常会遇到需要对数据进行类型转换的场景,String类型的数据转为Int类型属于比较常见的场景,主要有两种转换方法:

    1. 使用Integer.parseInt(String)方法

    2. 使用Integer.valueOf(String)方法

            具体demo如下:

    1. public void convert() {
    2. // 1.使用Integer.parseInt(String)
    3. String str1 = "31";
    4. Integer num1 = Integer.parseInt(str1);
    5. System.out.print("字符串31转换为数字:");
    6. System.out.println(num1);
    7. // 2.使用Integer.valueOf(String)
    8. String str2 = "32";
    9. Integer num2 = Integer.valueOf(str2);
    10. System.out.print("字符串32转换为数字:");
    11. System.out.println(num2);
    12. }

            执行结果:

            根据执行结果可见,两种方式都能完成字符串到整型的转换。

    注意点

            但需要注意的是,使用这两种方法都有一个前提,那就是待转换字符串的内容必须为纯数字。 

            不难发现上面demo中的待转换字符串都是"31"、"32"这种由纯数字组成的字符串,如果待转字符串中出现了除数字以外的其他字符,则程序会抛出异常。

            如下demo所示,在字符串中加入小写英文字母,并用try-catch语句包裹代码段以捕捉会出现的异常。(因为我们已经知道,带字母的字符串转换为整型会出现数字格式转换的异常,所以选择catch NumberFormatException

    1. public void convert() {
    2. // 1.Integer.parseInt(String)
    3. try {
    4. String str1 = "31a";
    5. Integer num1 = Integer.parseInt(str1);
    6. System.out.print("字符串31a转换为数字:");
    7. System.out.println(num1);
    8. } catch (NumberFormatException e) {
    9. System.out.println("Integer.parseInt(String)方法执行异常");
    10. e.printStackTrace();
    11. }
    12. // 1.Integer.valueOf(String)
    13. try {
    14. String str2 = "32b";
    15. Integer num2 = Integer.valueOf(str2);
    16. System.out.print("字符串32b转换为数字:");
    17. System.out.println(num2);
    18. } catch (NumberFormatException e) {
    19. System.out.println("Integer.valueOf(String)方法执行异常");
    20. e.printStackTrace();
    21. }
    22. }

             从执行结果可见,这段代码分别在Integer.parseInt(String)方法和Integer.valueOf(String)位置触发了NumberFormatException,​​​​其原因都是被转换的字符串中存在英文字母,无法转换成整型。​

    性能比较

            我们可以通过查看源码来比价两个方法的性能:

    1. public static int parseInt(String s) throws NumberFormatException {
    2. return parseInt(s,10);
    3. }
    4. public static Integer valueOf(String s) throws NumberFormatException {
    5. return Integer.valueOf(parseInt(s, 10));
    6. }

            不难发现,Integer.parseInt(String) 和Integer.valueOf(String)的实现中,都是调用的一个方法:Integer.parseInt(String, Integer);但是Integer.valueOf(String)还多嵌套了一层Integer.valueOf(Integer)方法,因此从源码可得知:Integer.parseInt(String)方法的性能更胜一筹。

  • 相关阅读:
    政策解读:《科技保险业务统计制度》带来新要求,数据报送攻略大公开!
    大一html5期末大作业 :基于html实现非遗文化网页设计题材【传统文化木雕】7个页面
    L59.linux命令每日一练 -- 第九章 Linux进程管理命令 -- killall和pkill
    【深度学习】 Python 和 NumPy 系列教程(廿二):Matplotlib详解:2、3d绘图类型(8)3D饼图(3D Pie Chart)
    ESP8266-Arduino网络编程实例-ESP-MESH传感器数据发送与接收
    传统广电媒体为何选择上云?有何优势?
    学习Java的第六天
    学习基于html和JavaScript的滑动图片拼图验证源码
    回归预测|GWO-BPNN-Adaboost算法原理及其实现(Matlab)
    Vue前端整合后端的CRUD
  • 原文地址:https://blog.csdn.net/qq_33323054/article/details/126256907