Как заменить следующий спецсимвол - это строка в C # - PullRequest
0 голосов
/ 22 октября 2019

В c #, как я могу заменить символ ниже, который является частью строки, пробелом?

�

Я пытался использовать приведенный ниже код, но не получилось.

line = line.Replace ("�", "");

Ответы [ 2 ]

1 голос
/ 22 октября 2019

Причина, по которой ваш код не работает, заключается в том, что он ищет всю строку для замены (например, все три неправильных символа по порядку), а не какой-либо из них.

Чтобы заменить любую из трех,вам нужно что-то более похожее на это:

line = line.Replace("ï", " ").Replace("¿", " ").Replace("½", " ");

Но, в зависимости от ваших требований, вам может быть лучше очистить строку, просматривая каждый символ и просто проверяя, является ли он ASCII или буквенно-цифровым или чем-то еще, что вам нужноэто должно быть и восстановление чистой строки символ за символом.

0 голосов
/ 22 октября 2019

Есть ли способ сказать ему, чтобы он заменял все расширенные символы ascii (126 - 255) на ""

Один из способов замены символов вдиапазон ascii valus заключается в обработке строки как char[], выберите все символы, кроме тех, которые вам не нужны (те, у которых значение ascii находится в диапазоне от 126 до 255), а затем Concat строка снова вместе:

line = string.Concat(line.Where(chr => chr < 126 || chr > 255));
...