Входными данными является строка, содержащая один из символов .!?;:()
например: "a; fg x; x y;"
необходимо разделить эту строку по ; , после чего, избавиться от string.Empty и null значений, на выходе должно быть: {"a", " fg x", " x y"}
вместо этого: {"a"}
как это реализовать с помощью Linq? нерабочая версия:
var text = "a; fg x; x y;";
char[] separators = {';','!','?','.',':','(',')'};
string[] sentences = text.Split(separators).Where(x => x != string.Empty && x != null).ToArray();
весь код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
SplitIntoSentences("a; fg x; x y;");
}
public static void SplitIntoSentences(string text)
{
text = text.ToLower();
char[] separators = {';','!','?','.',':','(',')'};
string[] sentences = text.Split(separators).Where(x => x != string.Empty && x != null).ToArray();;
Console.Write("{0} ", sentences);
}
}
Запустил код на приведённом примере - отработало как надо
var text = "a; fg x; x y;";
char[] separators = { ';', '!', '?', '.', ':', '(', ')' };
string[] sentences = text.Split(separators).Where(x => x != string.Empty && x != null).ToArray();
Уточните вопрос или "не воспроизводится".
Сборка персонального компьютера от Artline: умный выбор для современных пользователей