Конкатенация строк с использованием C # - PullRequest
0 голосов
/ 30 марта 2009

У меня есть строка ввода:

«Управление рисками, управление портфелем, планирование инвестиций»

Как мне преобразовать эту строку в:

«Управление рисками» + «Управление портфелем» + «Планирование инвестиций»

Спасибо.

Ответы [ 9 ]

18 голосов
/ 30 марта 2009

Сплит и Трим

 // include linq library like this:
 // using System.Linq;
 // then

"test1, test2".Split(',').Select(o => o.Trim());

или

"test1, test2".Split(',').Select(o => o.Trim()).ToArray(); // returns array

и

"test1, test2".Split(',').Select(o => "\"" + o.Trim() + "\"")
.Aggregate((s1, s2) => s1 + " + " + s2);

// returns a string: "test1" + "test2"
6 голосов
/ 30 марта 2009

Используйте метод Split():

string[] phrases = s.Split(',');

Теперь у вас есть строковый массив каждого значения через запятую.

Чтобы удалить пробелы, используйте метод Trim() для каждой строки (спасибо Джону Феминелле)

3 голосов
/ 30 марта 2009

Вы не можете использовать String.Split() в вашем случае, потому что у вас есть запятая, а затем пробел. Таким образом, ваши строки будут выглядеть как {"risk management", " portfolio management", " investment planning"}. Вместо этого используйте Regex.Split:

string[] investmentServices = Regex.Split(inputString, ", ");
3 голосов
/ 30 марта 2009
var results = from s in string.Split("risk management, portfolio management, investment planning", new char[] { ',' })
              select s.Trim();
2 голосов
/ 30 марта 2009

Ваш вопрос неясен, хотите ли вы заменить ',' на '+' или просто на split.

Вот 2 варианта:

string s = "risk management, portfolio management, investment planning";

string transformedString = s.Replace(", ", "\" + \"");

string[] parts = s.Split(new [] {", "}, StringSplitOptions.None);
2 голосов
/ 30 марта 2009

Если вы хотите разделить ввод, вы можете использовать string.Split, используя запятую в качестве разделителя или, что еще лучше, "," для учета пробела после запятой,

string[] array = inputString.Split(", ");

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

inputString = inputString.Replace(", ", "\" + \"");
1 голос
/ 30 марта 2009

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

string input = "risk management, portfolio management, investment planning";
string[] words = text.Split(new Char[] {','});
foreach(string word in words)
{
  Console.WriteLine(word.Trim());
}
//risk management
//portfolio management
//investment planning
1 голос
/ 30 марта 2009

На самом деле похоже, что вы пытаетесь выполнить разбиение, а не конкатенацию.

Если вы хотите взять эту входную строку и преобразовать ее в три строки, содержащие «управление рисками», «управление портфелем» и «планирование инвестиций», то используйте string.Split(inputString, ','), затем обрежьте каждую строку из полученного массива когда вы используете его.

0 голосов
/ 31 марта 2009

Ответ Джонни Д. Кано (Извините, у меня нет 50 повторений для комментария.)

Ваша первая рекомендация

string [] array = inputString.Split (",");

Не работает, потому что вы не можете разбить строку. Ближайшая возможная перегрузка - это char [], поэтому вы должны записать его как ...

string [] array = inputString.Split (", ».ToCharArray ());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...