你好我们正在尝试用C#创建一个程序,我在比较两个字符串,其中字符串中有双引号。我的问题是我如何比较它们的相等性,因为似乎编译器忽略了引号内的单词并且没有给我正确的比较。
一个例子是
string1 = Hi "insert name" here.
string2 = Hi "insert name" here.
我想使用string1.equals(string2)
。但似乎它告诉我字符串不相等。我该怎么做呢?请帮忙。
PS。我无法控制字符串的外观,因为它们是动态变量。所以我不能只说添加一个转义序列。
答案 0 :(得分:3)
string s1 = "Hi \"insert name\" here.";
string s2 = "Hi \"insert name\" here.";
Console.WriteLine((s1 == s2).ToString()); //True
我没问题......
答案 1 :(得分:1)
.NET在进行比较时不会忽略带双引号的字符串值。我认为你对正在发生的事情的分析是有缺陷的。例如,给定以下值:
var string1 = "This contains a \"quoted value\"";
var string2 = "This contains a \"quoted value\"";
var string3 = "This contains a \"different value\"";
string1.Equals(string2)
将等于true
,而string2.Equals(string3)
将等于false
。
以下是您在比较时没有看到预期结果的一些潜在原因:
"this"
和“this”
是完全不同的字符串。Object.Equals
比较两个对象是否是同一个对象。如果您没有处理String
引用,则可能会发生错误的比较。您的问题还有很多可能的原因,但不是因为字符串比较忽略了双引号。您在问题中提供的详细信息越多,我们就越容易缩小您所看到的内容。