Подтвердить что ты не робот

Строка unquote в С#

Пожалуйста, простите мою лень. Я мог бы понять это, читая, я знаю, но я думал, что дам одному из вас гениев С# шанс выиграть какой-нибудь реп.

У меня есть файл данных в формате INI, таком как формат, который должен быть прочитан как некоторым кодом C, так и некоторым кодом С#. Код C ожидает, что строковые значения будут окружены кавычками. С# эквивалентный код использует некоторый базовый класс или что-то, что я не контролирую, но в основном он включает кавычки как часть выходной строки. То есть содержимое файла данных

MY_VAL="Hello World!"

дает мне

"Hello World!"

в моей строке С#, когда мне действительно нужно содержать

Hello World!

Как я условно (при наличии первого и последнего символа является) удаляет кавычки и получает содержимое строки, которое я хочу.

Большое спасибо.

4b9b3361

Ответ 1

В вашей строке используйте Trim с параметром "as char:

.Trim('"')

Ответ 2

Я обычно называю String.Trim() для этой цели:

string source = "\"Hello World!\"";
string unquoted = source.Trim('"');

Ответ 3

Моя реализация показывает, что кавычки с обеих сторон

public string UnquoteString(string str)
{
    if (String.IsNullOrEmpty(str))
        return str;

    int length = str.Length;
    if (length > 1 && str[0] == '\"' && str[length - 1] == '\"')
        str = str.Substring(1, length - 2);

    return str;
}

Ответ 4

Просто возьмите возвращаемую строку и сделайте Trim('"');

Ответ 5

Я бы предложил использовать метод replace().

string str = "\"HelloWorld\"";
string result = str.replace("\"", string.Empty);

Ответ 6

Будучи навязчивым, здесь (что я, никаких комментариев о вас), вы можете рассмотреть

  .Trim(' ').Trim('"').Trim(' ')

так что любые, ограничивающие пробелы вне кавычки строки обрезаются, тогда кавычки удаляются и, наконец, удаляются любые ограничивающие пространства для содержащейся строки.

  • Если вы хотите сохранить содержащееся ограниченное пустое пространство, опустите окончательный .Trim('').
  • Если есть встроенные пробелы и/или кавычки, они будут сохранены. Скорее всего, такие пожелания и не должны быть удалены.
  • Проведите некоторое исследование относительно того, что нет аргумента Trim() для таких вещей, как символы формы и/или символы табуляции, ограничивающие и встроенные. Возможно, что один и/или другой Trim ('') должны быть просто Trim().

Ответ 7

Если вы знаете, что всегда будет "в конце и в начале, это будет самый быстрый способ".

s = s.Substring(1, s.Length - 2);

Ответ 8

Используйте функцию замены строки или функцию обрезки. Если вы хотите удалить первую и последнюю кавычки, используйте функцию подстроки.

string myworld = "\"Hello World!\"";
string start = myworld.Substring(1, (myworld.Length - 2));