одна и та же строка не равна другой

string s [email protected]"­";
string r = HttpUtility.HtmlDecode(s);

string r3 = string.Format("1{0}Jan{0}2007",r);
Console.WriteLine(r3);
if(r3 == "1-Jan-2007")
{
    Console.WriteLine("Equal");
    Console.WriteLine("1-Jan-2007");
}
else
{
    Console.WriteLine("Not Equal");
    Console.WriteLine("1-Jan-2007");

}

Выход

1-Jan-2007 Не равный 1-Jan-2007

but when i replace r with "-" i.e string.Format("1{0}Jan{0}2007","-"); Выход

1-Jan-2007 равных 1-Jan-2007

0
Насколько я могу судить, - не ASCII Dec 173. Это 45.
добавлено автор Sam Axe, источник
- - это символ ASCII с кодовым числом <128. - это кодовая точка> 127, поэтому они не являются одинаковыми символами, даже если они выглядят одинаково.
добавлено автор CodesInChaos, источник
@ogzd Почему? IMO выглядит более уродливым, и до тех пор, пока статический тип обеих сторон string (а левая сторона не равна нулю), они эквивалентны. C# поддерживает перегрузку оператора, а == перегружается на строку, чтобы использовать равенство значений, а не ссылочное равенство.
добавлено автор CodesInChaos, источник
Что является результатом String.Compare (r3, «1-янв-2007»)?
добавлено автор Jobo, источник
@ogzd Это правда, что вам нужно использовать .Equals() в java, но в C# отлично использовать ==.
добавлено автор Destrictor, источник
String.Compare (r3, "1-Jan-2007") результат 1
добавлено автор Haider, источник
используйте equals
добавлено автор ogzd, источник
Да, я в порядке, я ошибся.
добавлено автор ogzd, источник

2 ответы

­ is the Unicode character 'SOFT HYPHEN' (U+00AD). Although it looks very similar to the Unicode character 'HYPHEN-MINUS' (U+002D), the two characters are not the same.

9
добавлено
то мне нужно преобразовать SOFT HYPHEN в HYPHEN-MINUS
добавлено автор Haider, источник

Попробуй это:

if(r3.Equals("1-Jan-2007", StringComparison.InvariantCultureIgnoreCase))
0
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot