电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java中判斷字符串是否相等的實現(xiàn)

瀏覽:5日期:2022-08-17 17:06:43

在最近的開發(fā)中,我踩到一個坑,過程是這樣的。我需要在Java中判斷兩個字符串是否相等,按照以往的經(jīng)歷使用 == 雙等號的操作符來判斷,但是在Java中,這樣寫卻沒有實現(xiàn)我想要的效果。經(jīng)過查閱資料后,把得到的經(jīng)驗分享給大家。

相等判斷操作符==

Java中,==相等判斷符用于判斷基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。 當(dāng)判斷基本數(shù)據(jù)類型的時候判斷的是數(shù)值,當(dāng)判斷引用數(shù)據(jù)類型時判斷變量是否指向同一引用對象。

使用==判斷字符串時,判斷的是兩個字符串是否指向同一個對象。如果兩個字符串指向同一個對象,那么它們就是相同的,使用==比較的結(jié)果也就是True。如果兩個字符串指向不同的對象,那么它們不相同,使用==比較的結(jié)果也就是False。通過字面賦值的時候,相同的字符串會指向同一個對象,例如:

String str1='abcde';// 把'abcde'放入常量池中,編譯時產(chǎn)生String str2='abcde';// 引用常量池中的對象,不會重新創(chuàng)建對象str1 == str2; //str1和str2指向同一個對象,結(jié)果是true

但如果另有一個str3,不是通過這種字面的方式被賦值的,即便str3的值也是'abcde',例如:

String str3 = new String('abcde');//運行時把'abcde'放入堆里面,在堆中創(chuàng)建一個對象str1 == str3; //str1和str3指向不同的對象,結(jié)果是false相等判斷方法equals()

在Java中,可以使用equals()方法判斷字符串的內(nèi)容是否相同。

String str1='abcde';String str3 = new String('abcde');str1.equals(str3);//str1和str3的值一樣,結(jié)果是true str1 == str3; //str1和str3指向不同的對象,結(jié)果是falseequals()方法原理

為什么可以使用equals()方法呢,我們看下String 類中的 equals()方法的源碼。

public boolean equals(Object anObject) { if (this == anObject) { //先比較兩個字符串的引用是否相等(是否指向同一個對象), 是直接返回true return true; } if (anObject instanceof String) { //兩個引用不等還會繼續(xù)比較 String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; //字符串類是用字符數(shù)組實現(xiàn)的, 先要拿到兩個字符串的字符數(shù)組 char v2[] = anotherString.value; int i = 0; while (n-- != 0) { //然后對兩個數(shù)組逐個字符地進行比較if (v1[i] != v2[i]) return false;i++; } return true; } } return false;}

從上面的源碼可以看到, 當(dāng)調(diào)用 String 類型數(shù)據(jù)的equals()方法時,首先會判斷兩個字符串的引用是否相等,也就是說兩個字符串引用是否指向同一個對象,是則返回true。如果不是指向同一個對象,則把兩個字符串中的字符挨個進行比較。

總結(jié)

上述就是我為大家分享的java判斷兩個字符串是否相等的方法了,如果您也有類似的疑惑,不妨礙參照上述分析進行理解。在不斷的學(xué)習(xí)中,我相信會有更多的經(jīng)驗分享,歡迎大家持續(xù)關(guān)注。

到此這篇關(guān)于Java中判斷字符串是否相等的實現(xiàn)的文章就介紹到這了,更多相關(guān)Java 字符串相等內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 氟氨基酮、氯硝柳胺、2-氟苯甲酸、异香兰素-新晨化工 | 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 圆形振动筛_圆筛_旋振筛_三次元振动筛-河南新乡德诚生产厂家 | 长城人品牌官网 | 自动焊锡机_点胶机_螺丝机-锐驰机器人| 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 厂房出租-厂房规划-食品技术-厂房设计-厂房装修-建筑施工-设备供应-设备求购-龙爪豆食品行业平台 | 福兰德PVC地板|PVC塑胶地板|PVC运动地板|PVC商用地板-中国弹性地板系统专业解决方案领先供应商! 福建成考网-福建成人高考网 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 恒温水槽与水浴锅-上海熙浩实业有限公司 | 深圳激光打标机_激光打标机_激光焊接机_激光切割机_同体激光打标机-深圳市创想激光科技有限公司 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 安驭邦官网-双向万能直角铣头,加工中心侧铣头,角度头[厂家直销] 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 步进驱动器「一体化」步进电机品牌厂家-一体式步进驱动 | 企业微信营销_企业微信服务商_私域流量运营_艾客SCRM官网 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 空压机网_《压缩机》杂志| 北京乾茂兴业科技发展有限公司 | SEO网站优化,关键词排名优化,苏州网站推广-江苏森歌网络 |