Авто кавычки вокруг строки в С# - строить методом?
Есть ли встроенный метод, который добавляет кавычки вокруг строки в С#?
Ответы
Ответ 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}