Java如何將字符串轉(zhuǎn)為數(shù)字int的三種方式詳析
如何將java字符串轉(zhuǎn)換為數(shù)字
對知識(shí)永遠(yuǎn)只有學(xué)無止境。
第一種
String str = "123456"; Integer num = new Integer(str);//轉(zhuǎn)換成對象
第二種
String str = "123456"; int num = Integer.parseInt(str);
第三種
String str = "123456"; int num = Integer.valueOf(str);
注意:這三種的轉(zhuǎn)換區(qū)別在哪里呢?對知識(shí)應(yīng)該敬畏。
第一種是將字符串,轉(zhuǎn)換成一個(gè)數(shù)字的對象,兩個(gè)相同的數(shù)字進(jìn)行轉(zhuǎn)換。
Integer num = new Integer("1");//轉(zhuǎn)換成對象
Integer num1 = new Integer("2");//轉(zhuǎn)換成對象
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í)候,具體請看需要看轉(zhuǎn)換的字符整體大小決定的。
例子1:
Integer i1 = Integer.valueOf("100");
Integer i2 = Integer.valueOf("100");
if (i1 == i2) { //兩個(gè)對象相等
System.out.print("i1 == i2");
}
if (i1.equals(i2)) { //兩個(gè)對象中的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è)對象相等
System.out.print("i1 != i2");
}
if (i1.equals(i2)) { //兩個(gè)對象中的value值相等
System.out.print("i1.equals(i2)");
}結(jié)果:
i1 != i2
i1.equals(i2)
因上述可知:數(shù)值為1000,不在-128~127之間,通過Integer.valueOf(s)解析出的兩個(gè)對象i1和i2是不同的對象,對象中的value值是相同的。
原因: 因?yàn)樵贘DK源碼當(dāng)中時(shí)已經(jīng)定義好的,由于在-128 ~ 127之間的整數(shù)值用的比較頻繁,每一次的創(chuàng)建直接從緩存中獲取這個(gè)對象,所以value值相同的Integer對象都是對應(yīng)緩存中同一個(gè)對象。-128~127之外的整數(shù)值用的不太頻繁,每次創(chuàng)建value值相同的Integer對象時(shí),都是重新創(chuàng)建一個(gè)對象,所以創(chuàng)建的對象不是同一個(gè)對象。
總結(jié)
到此這篇關(guān)于Java如何將字符串轉(zhuǎn)為數(shù)字int的三種方式的文章就介紹到這了,更多相關(guān)Java字符串轉(zhuǎn)數(shù)字int內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot vue導(dǎo)出功能實(shí)現(xiàn)代碼
這篇文章主要介紹了Springboot vue導(dǎo)出功能實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Springboot項(xiàng)目全局異常統(tǒng)一處理案例代碼
最近在做項(xiàng)目時(shí)需要對異常進(jìn)行全局統(tǒng)一處理,主要是一些分類入庫以及記錄日志等,因?yàn)轫?xiàng)目是基于Springboot的,所以去網(wǎng)絡(luò)上找了一些博客文檔,然后再結(jié)合項(xiàng)目本身的一些特殊需求做了些許改造,現(xiàn)在記錄下來便于以后查看2023-01-01
搭建MyBatis開發(fā)環(huán)境及基本的CURD介紹
這篇文章主要介紹了搭建MyBatis開發(fā)環(huán)境及基本的CURD,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Java使用文本塊(Text Blocks)處理多行字符串的操作方法
本文介紹了Java文本塊(TextBlocks)語法,它簡化多行字符串的處理,保留文本格式、減少錯(cuò)誤、提升代碼可讀性,本文詳細(xì)解釋了文本塊的語法、縮進(jìn)規(guī)則、常用轉(zhuǎn)義符及常見使用場景,同時(shí)注意事項(xiàng),需要的朋友可以參考下2026-05-05
從零開始學(xué)java之二叉樹和哈希表實(shí)現(xiàn)代碼
這篇文章主要介紹了java之二叉樹和哈希表實(shí)現(xiàn)的相關(guān)資料,二叉查找樹和平衡二叉樹是二叉樹的兩種特殊形式,哈希表是一種通過哈希函數(shù)將數(shù)據(jù)與哈希值關(guān)聯(lián)起來的數(shù)據(jù)結(jié)構(gòu),可以快速查找數(shù)據(jù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
Java char[]數(shù)組轉(zhuǎn)成String類型詳細(xì)介紹
這篇文章詳細(xì)介紹了Java char[]數(shù)組轉(zhuǎn)成String類型(char to String)的方法,文章中有詳細(xì)的代碼示例,需要的朋友可以參考閱讀2023-04-04
Java 位運(yùn)算符>>與>>>區(qū)別案例詳解
這篇文章主要介紹了Java 位運(yùn)算符>>與>>>區(qū)別案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
使用IDEA和Gradle構(gòu)建Vertx項(xiàng)目(圖文步驟)
這篇文章主要介紹了使用IDEA和Gradle構(gòu)建Vertx項(xiàng)目(圖文步驟),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
Sentinel自定義異常的三種實(shí)現(xiàn)方式
Spring Cloud Alibaba Sentinel 是目前主流并開源的流量控制和系統(tǒng)保護(hù)組件,Spring Cloud Alibaba Sentinel 有 3 種自定義異常的實(shí)現(xiàn)方式,本文小編將通過代碼示例給大家詳細(xì)的介紹這三種實(shí)現(xiàn)方式,需要的朋友可以參考下2023-11-11

