Авто кавычки вокруг строки в С# - строить методом?

Есть ли встроенный метод, который добавляет кавычки вокруг строки в С#?

Ответы

Ответ 1

Вы имеете в виду просто добавление котировок? Как это?

text = "\"" + text + "\"";

? Я не знаю встроенного метода для этого, но было бы легко написать одно, если бы вы хотели:

public static string SurroundWithDoubleQuotes(this string text)
{
    return SurroundWith(text, "\"");
}

public static string SurroundWith(this string text, string ends)
{
    return ends + text + ends;
}

Таким образом, это немного более общее:

text = text.SurroundWithDoubleQuotes();

или

text = text.SurroundWith("'"); // For single quotes

Я не могу сказать, что мне нужно было делать это достаточно часто, чтобы иметь возможность использовать метод, хотя...

Ответ 2

string quotedString = string.Format("\"{0}\"", originalString);

Ответ 3

Да, используя конкатенацию и экранированные символы

myString = "\"" + myString + "\"";

Возможно, метод расширения

public static string Quoted(this string str)
{
    return "\"" + str + "\"";
}

Использование:

var s = "Hello World"
Console.WriteLine(s.Quoted())

Ответ 4

Нет, но вы можете написать свой собственный или создать метод расширения

string AddQuotes(string str)
{
    return string.Format("\"{0}\"", str);
}

Ответ 5

Использование символов Escape

Просто префикс специального символа с обратной косой чертой, которая называется escape character.

Простые примеры

string MyString = "Hello";
Response.Write(MyString);

Это будет печатать:

Hello

Но:

string MyString = "The man said \"Hello\"";
Response.Write(MyString);

Будет напечатан:

The man said "Hello"

Alternative

Вы можете использовать полезный оператор @, чтобы помочь избежать строк, см. эту ссылку:

http://www.kowitz.net/archive/2007/03/06/the-c-string-literal

Затем для кавычек вы должны использовать двойные кавычки для представления одной кавычки. Например:

string MyString = @"The man said ""Hello"" and went on his way";
Response.Write(MyString);

Выходы:

The man said "Hello" and went on his way

Ответ 6

В моем случае я хотел добавить кавычки, только если строка не была уже окружена кавычками, поэтому я сделал:

(это немного отличается от того, что я на самом деле делал, поэтому он не тестировался)

public static string SurroundWith(this string text, string ends)
{
    if (!(text.StartsWith(ends) && text.EndsWith(ends)))
    {
        return string.Format("{1}{0}{1}", text, ends);
    }
    else
    {
        return text;
    } 
}

Ответ 7

Нет такого встроенного метода для выполнения вашего требования

Существует метод SplitQuotes, который делает что-то Вход - это очень длинная строка Вывод - это, есть, очень длинная строка

Когда вы получаете строку из текстового поля или какого-то элемента управления, она поставляется с кавычками.

Если вы хотите разместить кавычки, вы можете использовать этот метод

private string PlaceQuotes(string str, int startPosition, int lastPosition)
        {
            string quotedString = string.Empty;
            string replacedString = str.Replace(str.Substring(0, startPosition),str.Substring(0, startPosition).Insert(startPosition, "'")).Substring(0, lastPosition).Insert(lastPosition, "'");
            return String.Concat(replacedString, str.Remove(0, replacedString.Length));
        }

Ответ 8

Я немного С# новичка, так что имею на меня, но у меня есть это в универсальном классе catch, потому что я пропускаю Perl:

// overloaded quote - if no quote chars spec'd, use ""
public static string quote(string s) {
    return quote(s, "\"\"");
}

// quote a string
// q = two quote chars, like "", '', [], (), {} ...
//     or another quoted string (quote-me-like-that)
public static string quote(string s, string q) {

    if(q.Length == 0)        // no quote chars, use ""
        q = "\"\"";
    else if(q.Length == 1)    // one quote char, double it - your mileage may vary
        q = q + q;
    else if(q.Length > 2)    // longer string == quote-me-like-that
        q = q.Substring(0, 1) + q.Substring(q.Length - 1, 1);

    if(s.Length == 0)    // nothing to quote, return empty quotes
        return q;

    return q[0] + s + q[1];

}

Используйте его следующим образом:

quote("this with default");
quote("not recommended to use one char", "/");
quote("in square brackets", "[]");
quote("quote me like that", "{like this?}");

Возврат:

"this with default"
/not recommended to use one char/
[in square brackets]
{quote me like that}