精华内容
下载资源
问答
  • java 判断两个字符串相等

    万次阅读 2019-02-28 02:06:04
    其他语言比较两个字符串是否相同通常用“==”,但在java中要用equals()。 1、“==” “==”比较的是是否为同一个对象,两个不同的字符串对象,即使值是相同的,用“==”还是返回false。 举个例子: String a = &...

    其他语言比较两个字符串是否相同通常用“==”,但在java中要用equals()。

    一、“==”

    “==”比较的是是否为同一个对象,两个不同的字符串对象,即使值是相同的,用“==”还是返回false。

    举个例子:

    String a = "helloworld";
    String b = "helloworld";
    String c = new String("helloworld");
    System.out.println(a==b);        //输出true
    System.out.println(a==c);        //输出false

    为什么a==b返回true,而a==c返回false?

    因为JVM为了提高性能和减少内存的开销,在实例化字符串的时候进行了一些优化:使用字符串常量池每当我们创建字符串常量时,JVM会首先检查字符串常量池,如果该字符串已经存在常量池中,那么就直接返回常量池中的实例引用。如果字符串不存在常量池中,就会实例化该字符串并且将其放到常量池中。由于String字符串的不可变性我们可以十分肯定常量池中一定不存在两个相同的字符串。

    而用new则会创建一个新的对象(看了一篇大佬博客,好像意思是也是指向同一个常量,链接:https://www.cnblogs.com/xiaoxi/p/6036701.html,这边就理解为创建了一个新对象吧,具体可以自己去看)

    理解了上面一段,就可以明白a和b是同一个字符串的引用,而a与c是不同的对象的引用,所以a==b输出true,a==c输出false。

    那要想比较两个字符串对象的所有字符是否相同该如何比较,用equals()方法!

     

    二、equals()方法

    equals()是根类Obeject中的方法,在实现时其实也是调用的“==”,但在String类中重写了此方法(见补充)。重写后的equals 方法比较两个字符串对象的所有字符是否相同。

    equals如何使用?

    例:A字符串和B字符串比较:

    if(A.equals(B)){
    
    }

     

    三、补充

    equals是根类Obeject中的方法。源代码如下:

    public boolean equals(Object obj) {
        return (this == obj);
    }

    可见默认的equals方法,直接调用==,比较对象地址。

    不同的子类,可以重写此方法,进行两个对象的equals的判断。

    String类源码中重写的equals方法如下,

    public boolean equals(Object anObject) {
        if (this == anObject) {
            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;
    }

    从上面的代码中可以看到,

      (1)String类中的equals首先比较地址,如果是同一个对象的引用,可知对象相等,返回true。

      (2)如果不是同一个对象,equals方法挨个比较两个字符串对象内的字符,只有完全相等才返回true,否则返回false。

     

    展开全文
  • linux中如何判断两个字符串相等

    千次阅读 2020-08-11 23:14:03
    if [ "$var1" = "$var2" ] 必须注意的点: if 与 [] 之间要有空格 [] 与“”之间要有空格 “” 与 =之间要有空格
    if [ "$var1" = "$var2" ]
    

    必须注意的点:
    if 与 [] 之间要有空格
    [] 与“”之间要有空格
    “” 与 =之间要有空格

    展开全文
  • shell中如何判断两个字符串相等

    万次阅读 多人点赞 2015-10-16 10:22:35
    注意的几点: 1、if和[ ]之间要空格。 2、[ ]和“ ”之间要空格 3、“ ”和=之间要空格, 否则都会报错


    注意的几点:

    1、if和[ ]之间要空格。

    2、[ ]和“ ”之间要空格

    3、“ ”和=之间要空格,

    否则都会报错

     

    展开全文
  • C# 判断两个字符串模糊相等

    千次阅读 2019-09-10 10:40:19
    业务需要,需要对用户输入的文本做模糊相等判断,比如“红豆薏米”,“薏米红豆”可以认为是相等的,又比如“书香酮”与“舒香桐”与可以认为是相等的。... /// 判断两个字符串是不是模糊相等 /// </summary...

    业务需要,需要对用户输入的文本做模糊相等判断,比如“红豆薏米”,“薏米红豆”可以认为是相等的,又比如“书香酮”与“舒香桐”与可以认为是相等的。只是大概做个判断,给用户个提示,在不影响人类解读的情况下,可以不用修改了。想了个简单的算法如下:

           /// <summary>
            /// 判断两个字符串是不是模糊相等
            /// </summary>
            /// <param name="sInputA"></param>
            /// <param name="sInputB"></param>
            /// <returns></returns>
            public static bool IsBasicEqual(string sInputA, string sInputB)
            {
                int nSimilarRate = 75; // 设定相似度,
                int nLengthA = sInputA.Length;
                int nLengthB = sInputB.Length;
    
                string sMin = "";
                string sMax = "";
                string sMin_py = "";
                string sMax_py = "";
    
                if (nLengthA >= nLengthB)
                {
                    sMin = sInputB;
                    sMax = sInputA;
                    sMin_py = PinYin.GetFirstLetter(sInputB);
                    sMax_py = PinYin.GetFirstLetter(sInputA);
                }
                else
                {
                    sMin = sInputA;
                    sMax = sInputB;
                    sMin_py = PinYin.GetFirstLetter(sInputA);
                    sMax_py = PinYin.GetFirstLetter(sInputB);
                }
    
                int nRate_hz_char = CompareString(sMin, sMax);
                int nRate_py_char = CompareString(sMin_py, sMax_py);
    
                if (((nRate_hz_char + nRate_py_char)/2) >= nSimilarRate)
                {
                    return true;
                }
                else
                {
                    return false;
                }
    
            }
    
            /// <summary>
            /// 逐个比较字符,判断相似度
            /// </summary>
            /// <param name="sMin"></param>
            /// <param name="sMax"></param>
            /// <returns></returns>
            public static int CompareString(string sMin, string sMax)
            {
                int nLength_min = sMin.Length;
                int nLength_max = sMax.Length;
                int nRate = 0;
    
                for (int i = 0; i < nLength_min; i++)
                {
    
                    if (sMax.IndexOf(sMin.Substring(i, 1)) >= 0)
                    {
                        nRate += 1;
                    }
    
                }
    
                return (nRate * 100 / nLength_max);
    
            }

    后期,又做了些完善,对字符串中的中文字符做模糊判断,对西文字符可严格判断,更符合业务需求。

    展开全文
  • Java中判断两个字符串是否相等

    千次阅读 2019-05-09 00:29:50
    java中需要用equals来判断两个字符串值是否相等。 在C++中,两个字符串比较的代码可以为: (string1string2) 但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false Java中必须使用string1.equals...
  • C语言判断两个字符串是否相等

    万次阅读 多人点赞 2016-12-29 10:45:10
    可以使用库函数strcmp比较。strcmp是C语言比较字符串的库函数。形式为int strcmp(char *a, char *b);...所以,要判断字符串相等,可以使用if(strcmp(string1, string2) == 0)如果返回为0,则相等,否则不等
  • 有时代码的逻辑要求你判断两个值是否不相等,这里也有两个选择:"!="和严格的"!==",它们的关系就类似于"=="和"==="。 讨论: "=="和"!="在求值时会尽可能地寻找值的匹配性,但你可能还是想在比较前进行显式的类型...
  • 注:本文使用的是VMware Workstation 15 Player 1.使用Vi/Vim命令创建.sh文件并编写内容 ...法1:使用“ = ”进行对比,注意字符串要与“=”之间留有 空格 注意:若无空格,则是用于赋值 #!/bin/bash :...
  • 步骤: 一 新增测试数据 ...二 两字符串进行比较 当直接使用 "=" 号进行判断时,是无法区分大小写的,如下图: 法1:转成二进制后再进行比较,如下图: 法2:使用HashBytes,如下图: ...
  • 1.第一种判断方式 if (str1==str2)//C#可以直接进行判断 2.第二种判断方式 int result1 = str1.CompareTo(str2); Console.WriteLine(result1); //输出result1=0 3.第三种判断方式 int result2=String.Compare(str1...
  • 判断两个字符串内容是否相等

    万次阅读 2018-01-23 18:57:21
    if语句判断str1==null也可以,但是此时else if中需要修改为: else if(!str1.equals(str2), 要保证调用equals方法的对象不为null 注意: System.out.println(str1.equals(str2));中传入的参数str2为null可以,...
  • mybatis if标签判断字符串相等

    千次阅读 2019-07-07 12:42:33
    mybatis 映射文件中,if标签判断字符串相等种方式: 因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量是否是字符串Y的时候, 注意: 不能使用 and 1=1 因为mybatis会把'Y'解析为字符,...
  • 在C++中,两个字符串比较的代码可以为: (string1==string2) 但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false Java中必须使用string1.equals(string2)来进行判断 eg: string s1=”Hello”...
  • 先将用户的输入值全部转换为大写(或小写),然后再行比较:?12345678910111213var name = document.form1.txtUserName.value.... } JavaScript有相等运算符。一种是完全向后兼容的,标准的"==",...
  • 主要介绍了python不相等两个字符串的 if 条件判断为True详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • js中判断2个字符串相等的问题

    千次阅读 2014-12-25 13:31:14
    js中两个字符串判断的确是用==来判断的。你用mes.trim()+''之后再和str比较应该可以成功。 估计是mes里面有空格或是换行符,试试先用下面的语句修改一下mes mes = mes.replace( /^\s+|\s+$/g...
  • 使用指针来判断两个字符串是否相等 cout请分别输入两个字符串str1和str2:"; cin.getline(str1,100); cin.getline(str2,100);
  • Excel中如何判断两个字符串是否相同

    千次阅读 2019-02-26 16:29:03
    1、直接使用公式判断:=A1=B1 结果返回TRUE则两个单元格内字符串相同,结果返回FALSE则两个单元格内字符串不相同。 2、函数判断:可以使用EXACT函数判断,公式为:=EXACT(A1,B1) 结果返回TRUE则两个单元格内字符串...
  • //错误写法 String a=new String("abc"); String b=new String(...a.equals(b)这返回的是一布尔类型(bool):真为ture 假为false { System.out.println("OK"); } //修改后的代码运行结果为:OK
  • python判断字符串相等

    万次阅读 2018-12-23 09:59:08
    The operator  a is b  returns True if a and b are ...is 判断的就是这个指针的值是否相同,如果相同则表示两个变量指向同一个对象实体。 而==则比较它们的内容是否相同,这一点与Java中的String不同。  
  • c语言==判断字符串是否相等

    千次阅读 2019-08-12 18:09:24
    1、如果比的是字符串指针,有可能是相等的 2、如果比较的是字符串本身(通过*p比),只会比较第一个字符 3、比较字符串数组的话,一定是不等的,*arr的话比较的是第一个字符 所以还是用strcmp()吧 #include &...
  • 在Java中,经常需要比较两个字符串,这里总结一下。   1.判断字符串是否相等 在Java中,可以使用“==”来进行判断字符串是否相等。 示例: String s1="Hello"; String s2="Hello"; //...
  • java中比较两个字符串是否相等

    千次阅读 2017-11-07 14:32:14
    在C++中,两个字符串比较的代码可以为:  (string1==string2)  但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false  Java中必须使用string1.equals(string2)来进行判断  eg:  string ...
  • 在一次面试的时候, 面试官给我出了一道题让我当场手写...如果当前i刚好是字符串的最后一个字符, 那么就可以返回true, 否则在迭代一次要比较的字符是++i(下一个字符) 使用迭代进行比较 public boolean doComper(cha...
  • 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...
  • Linux if判断字符串是否相等

    万次阅读 2017-04-27 12:59:01
    比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,...
  • Java 比较两个字符串内容是否相等

    千次阅读 2020-04-07 13:30:51
    在Java如果用 == 对两个 数组类型变量 的内容 进行比较,则可能得到 “错误的” 结果 因为String 在Java为引用数据类型,而不是基本数据(如int,float,char······) 所以,如果要比较 两个String的内容,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,589
精华内容 51,835
关键字:

判断两个字符串相等的语句