Java 中的字符串(String)与C# 中字符串(string)的异同
1. C# 中比较两个字符串字面量是否相等,可以使用 “==”比较运算符,是因为string 类型重写(override)了“==” 和 “!=” 运算符,在使用“==” 和 “!=” 进行字符串比较时,是对其字面量是否相同进行比较的。string 类型也重写了Equals()方法,在使用Equals()方法进行字符串比较时,也是判断其字面量是否相同,可以使用带StringComparison参数的重载进行不区分大小写的字面量比较。判断两个字符串是否是同一个字符串时用ReferenceEquals()方法。
【注】:在C#中,除了基本类型以外,在使用Equals()方法和“==”、“!=”运算符时,要先确定当前类型是否有重写他们的实现方式,然后在判断是否可以使用。
2. Java 中比较两个字符串字面量是否相等,要使用equals() 方法,不能使用 “==” 比较运算符。是因为在Java字符串比较中 ,“==” 相当于C#中的object.ReferenceEquals()方法,用来判断两个字符串是否是同一个字符串。用检测两个字符串字面量是否相同并且不区分大小写时,使用equalsIgnoreCase() 方法。