2016-12-10 4 views
-4

У меня есть переменная: string str1 = "abc+dfg+...", я хочу изменить str1 на string str2 = "'abc'+'dfg'+..."? Есть ли простой способ добиться этого?Как изменить «abc + dfg» на «abc» + «dfg»?

+0

Сначала я думал использовать Replace. Но я хочу знать, есть ли другой эффективный метод – Superman

ответ

1

Если строка формата всегда, как вы описали, вы можете сделать следующее трюк:

str2 = "'" + str1.Replace("+", "'+'") + "'"; 
+0

Метод более эффективен, чем linq – Superman

1

Это достаточно просто?

string str1 = "abc+dfg"; 
string str2 = String.Join("+", str1.Split('+').Select(x => $"'{x}'")); 

Это дает:

 
'abc'+'dfg' 

Если вы на самом деле явно значит:

string str1 = "abc+dfg+..." 

Тогда вы должны быть немного сложнее:

string str2 = String.Join("+", str1.Split('+').Select(x => x == "..." ? x : $"'{x}'")); 

Это дает:

 
'abc'+'dfg'+... 
+0

отлично! Вы очень профессиональны. Я понимаю, что это немного сложно. – Superman

+0

Я сделал тест и обнаружил, что использование replace более эффективно, чем linq. – Superman

+0

@Superman - Правда, но эффективна ли проблема для вас? – Enigmativity

Смежные вопросы