Java如何將字符串轉(zhuǎn)為數(shù)字int的三種方式詳析
如何將java字符串轉(zhuǎn)換為數(shù)字
對(duì)知識(shí)永遠(yuǎn)只有學(xué)無止境。
第一種
String str = "123456"; Integer num = new Integer(str);//轉(zhuǎn)換成對(duì)象
第二種
String str = "123456"; int num = Integer.parseInt(str);
第三種
String str = "123456"; int num = Integer.valueOf(str);
注意:這三種的轉(zhuǎn)換區(qū)別在哪里呢?對(duì)知識(shí)應(yīng)該敬畏。
第一種是將字符串,轉(zhuǎn)換成一個(gè)數(shù)字的對(duì)象,兩個(gè)相同的數(shù)字進(jìn)行轉(zhuǎn)換。
Integer num = new Integer("1");//轉(zhuǎn)換成對(duì)象 Integer num1 = new Integer("2");//轉(zhuǎn)換成對(duì)象 if (num == num1) { System.out.println("相等"); }else{ System.out.println("不相等"); }
結(jié)果:不相等
第二種:多次的解析,最終的得到結(jié)果,可以用 “==”進(jìn)行判斷相等
String s = "123456"; if (Integer.parseInt(s) == Integer.parseInt(s)) { //結(jié)果true System.out.println("兩者相等"); }
結(jié)果:兩者相等
第三種:多次解析會(huì)存在不相等的時(shí)候,具體請(qǐng)看需要看轉(zhuǎn)換的字符整體大小決定的。
例子1:
Integer i1 = Integer.valueOf("100"); Integer i2 = Integer.valueOf("100"); if (i1 == i2) { //兩個(gè)對(duì)象相等 System.out.print("i1 == i2"); } if (i1.equals(i2)) { //兩個(gè)對(duì)象中的value值相等 System.out.print("i1.equals(i2)"); }
結(jié)果:
i1 == i2
i1.equals(i2)
例子2:
Integer i1 = Integer.valueOf("100000"); Integer i2 = Integer.valueOf("100000"); if (i1 != i2) { //兩個(gè)對(duì)象相等 System.out.print("i1 != i2"); } if (i1.equals(i2)) { //兩個(gè)對(duì)象中的value值相等 System.out.print("i1.equals(i2)"); }
結(jié)果:
i1 != i2
i1.equals(i2)
因上述可知:數(shù)值為1000,不在-128~127之間,通過Integer.valueOf(s)解析出的兩個(gè)對(duì)象i1和i2是不同的對(duì)象,對(duì)象中的value值是相同的。
原因: 因?yàn)樵贘DK源碼當(dāng)中時(shí)已經(jīng)定義好的,由于在-128 ~ 127之間的整數(shù)值用的比較頻繁,每一次的創(chuàng)建直接從緩存中獲取這個(gè)對(duì)象,所以value值相同的Integer對(duì)象都是對(duì)應(yīng)緩存中同一個(gè)對(duì)象。-128~127之外的整數(shù)值用的不太頻繁,每次創(chuàng)建value值相同的Integer對(duì)象時(shí),都是重新創(chuàng)建一個(gè)對(duì)象,所以創(chuàng)建的對(duì)象不是同一個(gè)對(duì)象。
總結(jié)
到此這篇關(guān)于Java如何將字符串轉(zhuǎn)為數(shù)字int的三種方式的文章就介紹到這了,更多相關(guān)Java字符串轉(zhuǎn)數(shù)字int內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于javaMybatis存進(jìn)時(shí)間戳的問題
這篇文章主要介紹了javaMybatis存進(jìn)時(shí)間戳的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06SpringBoot封裝JDBC的實(shí)現(xiàn)步驟
本文主要介紹了SpringBoot封裝JDBC的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Centos下SpringBoot項(xiàng)目啟動(dòng)與停止腳本的方法
這篇文章主要介紹了Centos下SpringBoot項(xiàng)目啟動(dòng)與停止腳本的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11Java中do-while循環(huán)的使用方法及注意事項(xiàng)詳解
這篇文章主要介紹了Java中do-while循環(huán)的使用方法及注意事項(xiàng)的相關(guān)資料,在Java編程中,do-while循環(huán)是一種基本的循環(huán)控制結(jié)構(gòu),它至少執(zhí)行一次循環(huán)體,然后根據(jù)條件判斷是否繼續(xù),文中將用法介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10