精华内容
下载资源
问答
  • Java中判断字符串是否相等

    千次阅读 多人点赞 2021-01-20 17:03:37
    Java中判断字符串是否相等 在代码中,我们经常使用 == 双等号的表达式来判断两个字符串是否相等。但是在Java中,却不能这样写。 原因 Java中,使用==比较字符串时,判断的是两个字符串是否存放在相同的位置。如果两...


    在最近的开发中,我踩到一个坑,过程是这样的。我需要在Java中判断两个字符串是否相等,按照以往的经历使用 == 双等号的操作符来判断,但是在Java中,这样写却没有实现我想要的效果。经过查阅资料后,把得到的经验分享给大家。

    相等判断操作符==

    Java中,==相等判断符用于判断基本数据类型和引用数据类型。 当判断基本数据类型的时候判断的是数值,当判断引用数据类型时判断变量是否指向同一引用对象。
    使用==判断字符串时,判断的是两个字符串是否指向同一个对象。如果两个字符串指向同一个对象,那么它们就是相同的,使用==比较的结果也就是True。如果两个字符串指向不同的对象,那么它们不相同,使用==比较的结果也就是False。
    通过字面赋值的时候,相同的字符串会指向同一个对象,例如:

    String str1="abcde";// 把"abcde"放入常量池中,编译时产生
    String str2="abcde";// 引用常量池中的对象,不会重新创建对象
    str1 == str2; //str1和str2指向同一个对象,结果是true
    

    但如果另有一个str3,不是通过这种字面的方式被赋值的,即便str3的值也是"abcde",例如:

    String str3 = new String("abcde");//运行时把"abcde"放入堆里面,在堆中创建一个对象
    str1 == str3; //str1和str3指向不同的对象,结果是false
    

    相等判断方法equals()

    在Java中,可以使用equals()方法判断字符串的内容是否相同。

    String str1="abcde";
    String str3 = new String("abcde");
    str1.equals(str3);//str1和str3的值一样,结果是true 
    str1 == str3; //str1和str3指向不同的对象,结果是false
    

    equals()方法原理

    为什么可以使用equals()方法呢,我们看下String 类中的 equals()方法的源码。

    public boolean equals(Object anObject) {
        if (this == anObject) {	//先比较两个字符串的引用是否相等(是否指向同一个对象), 是直接返回true
            return true;
        }
        if (anObject instanceof String) {	//两个引用不等还会继续比较
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;	//字符串类是用字符数组实现的, 先要拿到两个字符串的字符数组
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {	//然后对两个数组逐个字符地进行比较
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }
    

    从上面的源码可以看到, 当调用 String 类型数据的equals()方法时,首先会判断两个字符串的引用是否相等,也就是说两个字符串引用是否指向同一个对象,是则返回true。
    如果不是指向同一个对象,则把两个字符串中的字符挨个进行比较。

    总结

    上述就是我为大家分享的java判断两个字符串是否相等的方法了,如果您也有类似的疑惑,不妨碍参照上述分析进行理解。在不断的学习中,我相信会有更多的经验分享,欢迎大家持续关注。

    展开全文
  • java中判断字符串是否相等

    千次阅读 2017-11-30 09:49:57
    判断字符串相等我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题。 java中判断字符串是否相等有两种方法: 1、用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";...

    判断字符串相等我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题。

    java中判断字符串是否相等有两种方法:

    1、用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc",

    那么a==b将返回true。这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存

    一份,所以a和b指向的是同一个对象;再比如:String a=new String("abc"); String b=new String("abc");

    那么a==b将返回false,因为a和b指向不同的对象。

    2、用equals方法,该方法比较的是字符串的内容是否相同,比如:String a=new String("abc"); 

    String b=new String("abc"); a.equals(b);将返回true。所以通常情况下,为了避免出现上述问题,判断

    字符串是否相等使用equals方法。

    展开全文
  • shell脚本之判断字符串是否相等

    万次阅读 2018-02-09 21:35:16
    shell脚本之判断字符串是否相等 基本要素 1)变量的声明 2)if语句的使用 3)echo的使用 2 .代码如下 #!/bin/bash str1=liushen str2=liuting if [ $str1 = $str2 ] then echo equal else echo not equal fi...

    0 总结

    Get to the points first. The article comes from LawsonAbs!
    • updata on 20200505:修改相关格式

    1.问题

    使用shell脚本判断字符串是否相等

    基本要素

    • 1)变量的声明
    • 2)if语句的使用
    • 3)echo的使用

    2 .代码

    #!/bin/bash
    str1=lawson
    str2=lawsonAbs
    if [ $str1 = $str2 ] #注意这里的空格不能少!
    then echo equal
    else echo not equal
    fi
    

    代码的另一种表达,在if语句中的两个变量中添加了“”符号。

    #!/bin/bash
    str1=liushen
    str2=liuting
    if [ "$str1" = "$str2" ]
    then echo equal
    else echo not equal
    fi
    
    展开全文
  • 循环嵌套判断字符串是否相等

    千次阅读 2017-11-23 15:32:08
    循环嵌套判断字符串是否相等
    for (int j = 0; j < pidList.length; j++) {
    					// 存入map当中
    					for (int i = 0; i < stationhour.size(); i++) {
    						if (pidList[j].equals(stationhour.get(i).getPtid())) {
    
    							pollValueMap = new TreeMap<String, String>();
    							pollValueMap.put("monitordate", stationhour.get(i)
    									.getDatatime() + "");
    							pollValueMap.put("stationCode", stationhour.get(i)
    									.getPtid() + "");
    							pollValueMap.put("so2_1h", stationhour.get(i)
    									.getValue_4402() + "");
    							pollValueMap.put("no2_1h", stationhour.get(i)
    									.getValue_4467() + "");
    							pollValueMap.put("pm10_1h", stationhour.get(i)
    									.getValue_4486() + "");
    							pollValueMap.put("co_1h", stationhour.get(i)
    									.getValue_4404() + "");
    							pollValueMap.put("o3_1h", stationhour.get(i)
    									.getValue_4471() + "");
    							// pollValueMap.put("o3_m1",
    							// stationhour.get(i).getValue_()+"");
    							pollValueMap.put("pm25_1h", stationhour.get(i)
    									.getValue_4468() + "");
    							String dateKey = DateTimeUtils.handle(stationhour
    									.get(i).getDatatime())
    									+ "@"
    									+ stationhour.get(i).getPtid();
    							hourMap.put(dateKey, pollValueMap);
    							pollValueMap = null;
    						} else {
    							continue;
    						}
    
    					}
    				}

    循环嵌套判断字符串是否相等

    先循环获取判断条件,在循环获取基础条件,if判断字符串是否相等 [A.equals(B)]  注意循环顺序  判断条件
    展开全文
  • JAVA判断字符串是否相等不能用==

    千次阅读 多人点赞 2018-10-06 21:37:41
    为什么说判断相等不能用==呢? 因为JAVA中String并非基本数据类型而是一个类, 变量名实际代表地址,而不是像C++一样理解为字符数组 ...那怎样判断字符串是否相等呢? String有内置判断方法 equals...
  • 判断字符串是否相等

    2019-01-21 22:06:58
    判断字符串是否相等 1.可以用equals()方法,如下: String str1 = new String(&quot;asd&quot;); String str2 = new String(&quot;abc&quot;); boolean result = str1.equals(str2); //将判断的...
  • JS 前端 判断字符串是否相等

    千次阅读 2019-03-29 14:33:06
    js在判断字符串是不是相等时遇到问题:相同字符串不相等 使用 ==或者 ===都返回不相等使用: encodeURIComponent(str)//可把字符串作为URI 组件进行编码。 ...
  • java 判断字符串是否相等

    千次阅读 2014-06-08 12:32:51
    判断字符串相等我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题。 java中判断字符串是否相等有两种方法: 1、用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";...
  • c语言==判断字符串是否相等

    千次阅读 2019-08-12 18:09:24
    1、如果比的是字符串指针,有可能是相等的 2、如果比较的是字符串本身(通过*p比),只会比较第一个字符 3、比较字符串数组的话,一定是不等的,*arr的话比较的是第一个字符 所以还是用strcmp()吧 #include &...
  • 在Java中,可以使用“==”来进行判断字符串是否相等。 示例: String s1="Hello"; String s2="Hello"; //输出返回值 System.out.println(s1==s2); 这时,我们如果运行一下,会发现会输出...
  • C++判断字符串是否相等

    千次阅读 2019-04-14 14:09:16
    话不多说,上代码 bool str_same(char *p1, char *p2) { if (strcmp(p1, p2)) return 0; else for (int i = 0; i < strlen(p1) + 1; i++) { if (p1[i] !...我相信一定会有更好的方...
  • Linux if判断字符串是否相等

    万次阅读 2017-04-27 12:59:01
    比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,...
  • [ebp + 0x2C] repz cmpsb jnz no popad mov eax,1 ret no: popad mov eax,2 ret } } int main() { if (repzcmpsb(i1, i2, sizeof(i1) - 1)==1) { std::cout 字符串相等" ; } else { std:...
  • Android 判断字符串是否相等

    千次阅读 2020-03-23 12:12:01
    判断两个String是否相等不能直接用== 或!=,需要用equals()判断,若相等,则返回1 String a = "hello"; String b = "world"; if (a.equals(b) { System.out.println("不一致"); }else{ System.out.println("一致...
  • 为什么Java判断字符串相等不能用== 首先,我们所说的两个字符串是否相等,是指字符串字面量是否相等,如果使用==来判断两个字符串是否相等,那么实际比较的是两个字符串的存储地址(即内存地址)是否相等.那么如果使用==来...
  • == 不能用于字符串的判断,它可用于数字和null的判断 要判断字符串是否相等用Java提供的String类中的equals方法
  • mybatis 映射文件中,if标签判断字符串相等,两种方式: 因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量是否是字符串Y的时候, 1. &lt;if test="sex=='Y'.toString()"&gt;...
  • 最近做项目Android时遇到了字符串的截取,判断字符串是否相等和字符串是否为空问题刚好用的上自己也知道些,所以整理了方便以后用,和供大家参考,有什么更好的方法或者其它方法我么可以一起交流,谢谢大家!
  • 假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等
  • 1、 if(organId.substring(0, 3)=='000'){ //相等  alert("相等");  }else{  alert("不相等");  }  2、 if(organId.substring(0, 3)==000){ //相等  alert("相等");  }else{  alert("不相等"); ...
  • mybatis if标签判断字符串是否相等

    千次阅读 2018-11-08 15:51:19
    mybatis 映射文件中,if标签判断字符串相等: 大概场景就是需要判断商品状态status(String变量)是否是字符串"on",一开始我的写法是: &lt;if test="status=='on'"&gt;  and **** ...
  • Java和C++判断字符串是否相等

    千次阅读 2013-04-07 22:13:44
    判断字符串相等我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题。 java中判断字符串是否相等有两种方法: 1、用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";...
  • 判断字符串是否相同

    2016-02-15 21:04:01
    字符串属于对象而非基本数据类型,不能使用”==“来判断两个字符串是否相等,所以需要通过equals()方法来判断两个字符串内容是否相同。  使用”==“判断的是两个字符串对象的内存地址,而非字符串内容。
  • js判断字符串是否相等

    万次阅读 2018-08-09 14:32:18
    两个字符串匹配一般使用“==”或者“===”判断,其不同是: 1.== equality 等同,=== identity 恒等。 2.==, 两边值类型不同的时候,要先进行类型转换,再比较。 3.==,不做类型转换,类型不同的一定不等。 ①“=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 631,865
精华内容 252,746
关键字:

判断字符串是否相等应该使用