Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,小编给大家分享一下Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!先来看段代码
千家信息网最后更新 2025年01月24日Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些
小编给大家分享一下Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
先来看段代码
public class IntegerDemo { public static void main(String[] args) { String num = null; System.out.println( Integer.parseInt(num));// Exception java.lang.NumberFormatException System.out.println( Integer.valueOf(num));// Exception java.lang.NumberFormatException System.out.println( String.valueOf(num)); //输出null num = ""; System.out.println( Integer.parseInt(num)); // Exception java.lang.NumberFormatException System.out.println( Integer.valueOf(num)); // Exception java.lang.NumberFormatException System.out.println( String.valueOf(num));//空串,啥也不输出 }}
先看一下 String.valueOf() 里面是怎么写的
String.valueOf() 在遇到 null 和 空串的情况下 ,都能正常输出,所以不抛错
再来看下 包装类型 Integer里面又是如何处理的
这两个方法里面都需要先 parseInt( s,10),就是将字符串s先转成 十进制的 int基本类型,,但是 valueOf()会根据int范围从[-127,127]的内部缓存中去取(用到设计模式中的 享元模式)
一起来看下 parseInt(s, 10),,在方法里面会判断字符串是否是合法的数字,会去校验null, 空串等其他格式,所以会抛错
public static int parseInt(String s, int radix) throws NumberFormatException { /* * WARNING: This method may be invoked early during VM initialization * before IntegerCache is initialized. Care must be taken to not use * the valueOf method. */ if (s == null) { throw new NumberFormatException("null"); } if (radix < Character.MIN_RADIX) { throw new NumberFormatException("radix " + radix + " less than Character.MIN_RADIX"); } if (radix > Character.MAX_RADIX) { throw new NumberFormatException("radix " + radix + " greater than Character.MAX_RADIX"); } int result = 0; boolean negative = false; int i = 0, len = s.length(); int limit = -Integer.MAX_VALUE; int multmin; int digit; if (len > 0) { char firstChar = s.charAt(0); if (firstChar < '0') { // Possible leading "+" or "-" if (firstChar == '-') { negative = true; limit = Integer.MIN_VALUE; } else if (firstChar != '+') throw NumberFormatException.forInputString(s); if (len == 1) // Cannot have lone "+" or "-" throw NumberFormatException.forInputString(s); i++; } multmin = limit / radix; while (i < len) { // Accumulating negatively avoids surprises near MAX_VALUE digit = Character.digit(s.charAt(i++),radix); if (digit < 0) { throw NumberFormatException.forInputString(s); } if (result < multmin) { throw NumberFormatException.forInputString(s); } result *= radix; if (result < limit + digit) { throw NumberFormatException.forInputString(s); } result -= digit; } } else { throw NumberFormatException.forInputString(s); } return negative ? result : -result; }
看完了这篇文章,相信你对"Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
空串
输出
字符
字符串
方法
模式
篇文章
类型
合法
两个
代码
十进制
又是
完了
就是
情况
数字
更多
格式
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国移动泰国无服务器
国家实验室网络安全
2021智慧树数据库答案
网络安全法设置恶意程序
商品采集上架软件开发
网络安全法新闻发布会
浙江软件开发价格有哪些
服务器停电后进不去系统
杭州仕佳网络技术官网
小程序软件开发流程
成都玖鉴互联网科技有限公司咋样
值得相信的cpk网络安全
可以虚拟显卡的服务器系统
网络安全教育读后感800字
网络安全5个基本因素
pdu服务器专用电源生产公司
怎么应对网络安全人才短缺
天谕服务器开放时间
光通信网络安全的图片
普通充值程序的数据库
专职写软件开发文档
2021智慧树数据库答案
软件开发业务开拓
无线网络安全英文文章
诛仙手游小米服务器
建立部门信息数据库
深圳软件开发5年后待遇
焦煤培训管理服务器ip
亿级数据库关键词查询
武汉大学国家网络安全学院宣传片