string word1 = ""; //see example
string word2 = "";
bool b1 = word1.StartsWith(word2);
bool b2 = word1.Substring(0, word2.Length) == word2;
对于某些阿拉伯字符串b1不等于b2? 你能解释一下这种行为吗?
示例:
word1 = ((char)0x0650).ToString()+ ((char)0x0652).ToString()+ ((char)0x064e).ToString();
word2 = ((char)0x0650).ToString()+ ((char)0x0652).ToString();
答案 0 :(得分:7)
存在差异:.StartsWith执行文化敏感性比较,而.Equals(您使用==)则不会。
因此,如果你有两个字符串,当你逐个字符地比较它们时(==返回false),但你的文化被认为是相同的(startswith返回true),你可以得到这个结果。
修改强> 如果我尝试使用此示例值:
bool b1 = word1.StartsWith(word2, StringComparison.Ordinal);
bool b2 = word1.Substring(0, word2.Length).Equals(word2, StringComparison.Ordinal);
都返回“True”。