Обрезать текст по количеству запятых

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
есть строка со словами и фразами разделенное запятыми, пример - "слово, слово2, слово еще слово, фраза слово, слово фраза, текст, текст еще и слово, слово3"
нужно обрезать по количеству запятых, допустим берем 4, после обработки должно быть так - "слово, слово2, слово еще слово, фраза слово"
как это можно сделать?
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113
Сплитом делите по запятым строку, потом обрезаете
 
  • Спасибо
Реакции: twisterrr

TwistDanceR

Client
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
есть строка со словами и фразами разделенное запятыми, пример - "слово, слово2, слово еще слово, фраза слово, слово фраза, текст, текст еще и слово, слово3"
нужно обрезать по количеству запятых, допустим берем 4, после обработки должно быть так - "слово, слово2, слово еще слово, фраза слово"
как это можно сделать?
Как-то так. Можно и проще, но я всегда все шаги пишу.:
string text = "слово, слово2, слово еще слово, фраза слово, слово фраза, текст, текст еще и слово, слово3";
string[] app = text.Split(new[] {","},StringSplitOptions.None);
List<string> needed = new List<string>();
for(int i=0; i<4; i++) { // Здесь 4 - количество слов которые надо сложить
     needed.Add(app[i]);
}
string result = String.Join(",",needed);
return result;
 
  • Спасибо
Реакции: twisterrr

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
C#:
string len = int.Parse(project.Variables["4"].Value); //переменная с числом для обрезки
string text = "слово, слово2, слово еще слово, фраза слово, слово фраза, текст, текст еще и слово, слово3";
return string.Join(",", text.Split(',').Take(len).ToArray());
 
  • Спасибо
Реакции: TwistDanceR и twisterrr

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
Сплитом делите по запятым строку, потом обрезаете
имеете ввиду кубик - "обработка текста" -> "Split" ? если да то можно по подробней, я так понял с помощью этого действия можно только раскидать строку по разным переменным

отлично работает, спасибо :ay:

string len = int.Parse(project.Variables["4"].Value); //переменная с числом для обрезки string text = "слово, слово2, слово еще слово, фраза слово, слово фраза, текст, текст еще и слово, слово3"; return string.Join(",", text.Split(',').Take(len).ToArray());
чет у меня не сработало, может че то не так написал:
C#:
string len = int.Parse(project.Variables["skolk_dobavit"].Value); //вставил переменную с числом

string text = "слово, слово2, слово еще слово, фраза слово, слово фраза, текст, текст еще и слово, слово3";

return string.Join(",", text.Split(',').Take(len).ToArray());
выдает такую ошибку: "
Компиляция кода Ошибка в действии "CS1928" "string[] не содержит определение для "Take", а перегрузка лучшего метода расширения "System.Linq.Enumerable.Take<TSource>(System.Collections.Generic.IEnumerable<TSource>, int)" содержит несколько недопустимых элементов". [Строка: 2; Cтолбец: 25]
"
 

TwistDanceR

Client
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
вроде никаких пробелов в переменной нет - http://prntscr.com/r6yg3e
C#:
int len = int.Parse(project.Variables["skolk_dobavit"].Value); //вставил переменную с числом

string text = "слово, слово2, слово еще слово, фраза слово, слово фраза, текст, текст еще и слово, слово3";

return string.Join(",", text.Split(',').Take(len).ToArray());
ошибка была. так работает
 
  • Спасибо
Реакции: twisterrr

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)