Java如何将字符串转为数字int的三种方式详析

 更新时间:2023年10月11日 08:25:21   作者:不一样的老墨  
这篇文章主要给大家介绍了关于Java如何将字符串转为数字int的三种方式,在编程中我们经常需要进行各种数据类型之间的转换操作,文中通过代码介绍的非常详细,需要的朋友可以参考下

如何将java字符串转换为数字

对知识永远只有学无止境。

第一种

String str = "123456";
 	Integer num = new Integer(str);//转换成对象

第二种

String str = "123456";
	int num = Integer.parseInt(str);

第三种

String str = "123456";
	int num = Integer.valueOf(str);

注意:这三种的转换区别在哪里呢?对知识应该敬畏。

第一种是将字符串,转换成一个数字的对象,两个相同的数字进行转换。

  		Integer num = new Integer("1");//转换成对象
        Integer num1 = new Integer("2");//转换成对象
        if (num == num1) {         			
        		System.out.println("相等");
        }else{
       			 System.out.println("不相等");
        }

结果:不相等

第二种:多次的解析,最终的得到结果,可以用 “==”进行判断相等

String s = "123456";
        if (Integer.parseInt(s) == Integer.parseInt(s)) { //结果true
            System.out.println("两者相等");
        }

结果:两者相等

第三种:多次解析会存在不相等的时候,具体请看需要看转换的字符整体大小决定的。

例子1:

 		
        Integer i1 = Integer.valueOf("100");
        Integer i2 = Integer.valueOf("100");
        if (i1 == i2) { //两个对象相等
            System.out.print("i1 == i2");
        }
        if (i1.equals(i2)) { //两个对象中的value值相等
            System.out.print("i1.equals(i2)");
        }

结果:
i1 == i2
i1.equals(i2)

例子2:

 		
        Integer i1 = Integer.valueOf("100000");
        Integer i2 = Integer.valueOf("100000");
        if (i1 != i2) { //两个对象相等
            System.out.print("i1 != i2");
        }
        if (i1.equals(i2)) { //两个对象中的value值相等
            System.out.print("i1.equals(i2)");
        }

结果:
i1 != i2
i1.equals(i2)

因上述可知:数值为1000,不在-128~127之间,通过Integer.valueOf(s)解析出的两个对象i1和i2是不同的对象,对象中的value值是相同的。

原因: 因为在JDK源码当中时已经定义好的,由于在-128 ~ 127之间的整数值用的比较频繁,每一次的创建直接从缓存中获取这个对象,所以value值相同的Integer对象都是对应缓存中同一个对象。-128~127之外的整数值用的不太频繁,每次创建value值相同的Integer对象时,都是重新创建一个对象,所以创建的对象不是同一个对象。

总结

到此这篇关于Java如何将字符串转为数字int的三种方式的文章就介绍到这了,更多相关Java字符串转数字int内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot vue导出功能实现代码

    Springboot vue导出功能实现代码

    这篇文章主要介绍了Springboot vue导出功能实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Springboot项目全局异常统一处理案例代码

    Springboot项目全局异常统一处理案例代码

    最近在做项目时需要对异常进行全局统一处理,主要是一些分类入库以及记录日志等,因为项目是基于Springboot的,所以去网络上找了一些博客文档,然后再结合项目本身的一些特殊需求做了些许改造,现在记录下来便于以后查看
    2023-01-01
  • 搭建MyBatis开发环境及基本的CURD介绍

    搭建MyBatis开发环境及基本的CURD介绍

    这篇文章主要介绍了搭建MyBatis开发环境及基本的CURD,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java使用文本块(Text Blocks)处理多行字符串的操作方法

    Java使用文本块(Text Blocks)处理多行字符串的操作方法

    本文介绍了Java文本块(TextBlocks)语法,它简化多行字符串的处理,保留文本格式、减少错误、提升代码可读性,本文详细解释了文本块的语法、缩进规则、常用转义符及常见使用场景,同时注意事项,需要的朋友可以参考下
    2026-05-05
  • 从零开始学java之二叉树和哈希表实现代码

    从零开始学java之二叉树和哈希表实现代码

    这篇文章主要介绍了java之二叉树和哈希表实现的相关资料,二叉查找树和平衡二叉树是二叉树的两种特殊形式,哈希表是一种通过哈希函数将数据与哈希值关联起来的数据结构,可以快速查找数据,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • Java char[]数组转成String类型详细介绍

    Java char[]数组转成String类型详细介绍

    这篇文章详细介绍了Java char[]数组转成String类型(char to String)的方法,文章中有详细的代码示例,需要的朋友可以参考阅读
    2023-04-04
  • Protobuf详解及入门指南附完整代码

    Protobuf详解及入门指南附完整代码

    Protobuf是一种由Google开发的二进制序列化格式,用于高效地序列化和反序列化结构化数据,它广泛应用于分布式系统、RPC框架和数据存储中,提供了高效性、简洁性、版本兼容性和语言无关性,本文介绍Protobuf详解及入门指南,感兴趣的朋友一起看看吧
    2025-03-03
  • Java 位运算符>>与>>>区别案例详解

    Java 位运算符>>与>>>区别案例详解

    这篇文章主要介绍了Java 位运算符>>与>>>区别案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 使用IDEA和Gradle构建Vertx项目(图文步骤)

    使用IDEA和Gradle构建Vertx项目(图文步骤)

    这篇文章主要介绍了使用IDEA和Gradle构建Vertx项目(图文步骤),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Sentinel自定义异常的三种实现方式

    Sentinel自定义异常的三种实现方式

    Spring Cloud Alibaba Sentinel 是目前主流并开源的流量控制和系统保护组件,Spring Cloud Alibaba Sentinel 有 3 种自定义异常的实现方式,本文小编将通过代码示例给大家详细的介绍这三种实现方式,需要的朋友可以参考下
    2023-11-11

最新评论