Скале имеет стандартный способ разделения строки в StringOps.split
разбить строку на полукокса
это поведение несколько удивило меня, хотя.
Чтобы продемонстрировать, используя функцию быстрого удобства
def sp(str: String) = str.split('.').toList
следующих выражения все оценивают истину
(sp("") == List("")) //expected
(sp(".") == List()) //I would have expected List("", "")
(sp("a.b") == List("a", "b")) //expected
(sp(".b") == List("", "b")) //expected
(sp("a.") == List("a")) //I would have expected List("a", "")
(sp("..") == List()) // I would have expected List("", "", "")
(sp(".a.") == List("", "a")) // I would have expected List("", "a", "")
поэтому я ожидал, что раскол будет возвращать массив с (числом сепаратора вхождений) + 1 элемент, но это явно не так.
Это почти выше, но удалите все завершающие пустые строки, но это не так для разделения пустой строки.
Я не могу идентифицировать шаблон здесь. Какие правила выполняет StringOps.split?
Для бонусных очков есть ли хороший способ (без слишком большого количества копий/добавление строк), чтобы получить раскол, который я ожидаю?
Спасибо, я просто запросил запрос на документацию. – Martijn