Как разделить пробелы и другие не алфавитно-цифровые символы - PullRequest
0 голосов
/ 04 мая 2019

Я настраиваю новый проект в C # и хочу разбить строку с этим символом, но остаться возвращать пустое пространство

 public static List<string> Tokinization(string stringy)
        {
            List<string> terms=new List<string>();
            char[] seps = new char[] { ' ',',','.','\n',};
            foreach (string ss in stringy.Split(seps))
            {
                terms.Add(ss);
            }
            return terms;
        }

Ввод:

stringy="Mountain bike"

Фактический результат:

terms{"","","",.........,"","Mountain","bike"}

Тем не менее, я ожидаю, что результат terms{"Mountain","bike"}

1 Ответ

2 голосов
/ 04 мая 2019

Если вы хотите разбить всю последовательность новой строки, а не только '\n', вы можете использовать перегрузку, принимая в качестве аргумента строковый массив и опции.

public static List<string> Tokinization(string stringy)
{
    List<string> terms = new List<string>();
    foreach (string ss in stringy.Split(new string[] { " ", ",", ".", Environment.NewLine }, StringSplitOptions.None))
    {
        terms.Add(ss);
    }
    return terms;
}

Если вы хотите пропустить пустые токеныв общем, вы также можете использовать соответствующую опцию.

public static List<string> Tokinization(string stringy)
{
    List<string> terms = new List<string>();
    foreach (string ss in stringy.Split(new string[] { " ", ",", ".", Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
    {
        terms.Add(ss);
    }
    return terms;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...