Как проверить, действительно ли используется символ нулевой ширины в строке на С#?C#

Место общения программистов C#
Ответить
Anonymous
 Как проверить, действительно ли используется символ нулевой ширины в строке на С#?

Сообщение Anonymous »

В следующей строке:
ප්‍රන

Символ u200D нулевой ширины используется для соединения двух символов. Вы можете проверить наличие этого символа в https://www.babelstone.co.uk/Unicode/whatisit.html
Если символ удален, два других символа вокруг него не будут отображаться. не присоединился и поэтому выглядит так:
ප්රන

Однако тот же символ и другой похожий символ u200C можно использовать там, где в этом нет необходимости, чтобы просто увеличить количество символов, при этом символы не будут видны или что-либо делать.
Как проверить, делают ли символы u200C и u200D что-то (объединяют два символа вокруг себя) или просто сидят и ничего не делают?
Я пытался следовать коду, но он работает не работает:
static void IsNeeded(string input)
{
bool hasZWJ = input.Contains('\u200D');
if (hasZWJ)
{
int index = input.IndexOf('\u200D');
if (index > 0 && Char.IsHighSurrogate(input[index + 1]))
{
Console.WriteLine($"{input}:The ZWJ character is used to join characters together");
}
else
{
Console.WriteLine($"{input}:The ZWJ character is not needed in the string");
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... tring-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»