C# 字符串比较
本文关键字:比较 字符串 | 更新日期: 2023-09-27 17:57:00
可能的重复项:
使用 == 或等于进行字符串比较
是字符串。等于()和==运算符真的一样吗?
我首先学习了Java,为数不多的绝对之一是你从不使用==来比较两个字符串是否相等,而是使用equals方法。因此,当我几年前登陆 C# 并注意到对象仍然具有 Equals 方法时,我假设该规则仍然适用。
现在我正在浏览一个前同事的代码,我到处都能找到这样的片段:
if (s.Substring(0, s.IndexOf("_")) == "GBCI") {...}
如果我没记错的话,== 将比较这两个结果之间的地址,并且由于前半部分是由函数返回的,这将失败,因为结果不会与右侧的常量地址相同。
我是否坚持旧的Java习惯?还是我的同事不在身边是一件好事?
附言不管你对比较字符串的回答如何,我确实意识到以上内容最好表述为s.BeginsWith("GBCI")
,但这完全是另一回事。
在 C# 中,字符串==
比较比较它们的值而不是它们的引用。有关详细信息,请参阅 C# 规范的此部分。
所以像这样使用它很好;你的同事是理智和清醒的。
作为另一个注意事项,请查看此链接。
您可以使用==
但是compareTo
是唯一的,因为它将根据字符串的不同(或不不同)的方式返回一个整数。