Удаление кавычек из строки

C#:
Удаление кавычек из строки

Как это сделать:

string withQuotes = "\"Привет, мир!\"";
Console.WriteLine($"Оригинал: {withQuotes}");

// Удаление двойных кавычек
string withoutDoubleQuotes = withQuotes.Replace("\"", "");
Console.WriteLine($"Без Двойных Кавычек: {withoutDoubleQuotes}");

// Удаление одинарных кавычек (если они были в вашей строке изначально)
string withSingleQuotes = "'Привет, мир!'";
string withoutSingleQuotes = withSingleQuotes.Replace("'", "");
Console.WriteLine($"Без Одинарных Кавычек: {withoutSingleQuotes}");

Вывод:

Оригинал: "Привет, мир!"
Без Двойных Кавычек: Привет, мир!
Без Одинарных Кавычек: Привет, мир!

Погружение в тему

Концепция удаления кавычек не нова или особенно сложна, но это критически важно, потому что кавычки часто используются для обозначения строк. Когда строка с неэкранированными кавычками включена в блок кода или файл данных, это может преждевременно завершить строку, вызывая ошибки или проблемы безопасности, такие как атаки через инъекции.

Исторически, работа с кавычками была частью процесса валидации и санации при обработке данных. Хотя метод .Replace() является простым для извлечения кавычек из простой строки, для обработки более сложных сценариев, таких как вложенные кавычки или условное удаление, могут потребоваться более продвинутые техники, такие как регулярные выражения.

Альтернативы .Replace() включают методы из класса Regex, когда вам нужен более тонкий контроль или вы имеете дело с шаблонами, а не с фиксированными символами. Например, Regex.Unescape() может пригодиться при работе с экранированными символами.

С точки зрения реализации, помните, что строки в C# неизменяемы, что означает, что каждый раз, когда вы используете .Replace(), создается новая строка. Это не критично для маленьких или единичных операций, но это нечто, о чем стоит помнить с точки зрения производительности для больших или многочисленных строк.

См. также: