Equals()与静态字符串.Equals()

约翰逊

阅读有关C#中的字符串比较的信息后,我发现有很多方法可以比较2个字符串以查看它们是否相等。

我习惯于使用==c ++,但是我了解到,如果将对象与字符串进行比较,则==默认为引用值(或类似值)。

然后对于该Equals()方法,可以说我有2个字符串。

string s1 = null;
string s2 = "Hello";

如果我做 s1.Equals(s2);

我得到一个空引用异常,因为第一个字符串为空

但是如果我这样做

string.equals(s1,s2);

false如果其中一个值是null则将简单地返回,如果两个值均是null,则将返回,true因为两个字符串相等,因为两个字符串都是相等的null

因此,有什么理由不总是使用该string.equals()方法。还有另一件事是,如果我string.equals()在像这样的字符串中输入大写字母S,tring.equals()则它的运行方式与小写字母相同,但是IDE(Visual Studio 2015)将告诉我可以简化并当我简化它时,将其转换为小写字母s。这是为什么?

克里斯托斯(Christos)

根据MSDN,该string.Equals方法

确定两个String对象是否具有相同的值。

这就是为什么string.equals(s1,s2);在您的情况下始终返回false的原因,如果s1and和s2均为null或具有相同的值,则返回true。

另一件事是,如果我在像这样的String.equals()的字符串中输入带有大写S的string.equals(),则它的运行方式与小写但与IDE相同(Visual Studio 2015)会告诉我它可以简化,当我简化时将其转换为小写字母s。这是为什么?

string是一个C#原始的,而System.String或简单String是相应的FCL(Framework类库)类型。int和和一样Int32,其中intC#是原语,并且Int32是对应的FLC类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对Java字符串使用'=='代替.equals

在字符串文字上调用equals

Java .equals 字符串的错误

比较Java .equals()中的字符串

equals方法使用字符串和列表

使用 .equals 比较两个单字符串

在Java枚举中对字符串使用equals

Jsoup返回的字符串“”在equals(“”)上未返回true

将字符串与equals()比较不起作用

字符串 a, b: if(a.equals(b)), if(Objects.equals(a, b)) 还是 if(a..hashCode()==b.hashCode())?

C# String Equals 比较方法对于包含特殊字符的字符串失败

compareTo()与equals()

.equals()的问题

克服对equals()方法不太可能的参数类型优雅的方式:流<字符串>似乎是无关的字符串

替换Objects.equals .equals()()

解密后的已加密字符串(AES)输出相同的值,但equals()上为false

使用Coupon.equals在If循环中比较字符串

equals() 方法如何在字符串缓冲区中工作?

DynamoDB Java SDK如何使用NOT EQUALS来查询字符串字段

DataFrame.equals() 失败 - 使用 to_csv() 将字符串转换为 NaN

Scala项目中包中字符串类的覆盖equals方法

匹配和equalsIgnoreCase或字符串类中的equals之间的差异

当我用==而不是.equals()比较字符串时,如何告诉Eclipse警告我

equals()的参数类型不太可能:字符串似乎与MemberSearchRequest不相关

使用length()而不是equals()检查Java中的空字符串

当使用`==`比较字符串而不是`equals()`时,如何使Android Studio或IntelliJ显示错误?

hash_equals是否比较用`sha512`散列的字符串?

equals() 使用字符串返回 true 而两个变量不是

使用string.equals比较Java中的两个字符串数组