Разделить строку пробелом, не удаляя пробел? - PullRequest
6 голосов
/ 20 ноября 2011

Что-то вроде: Как разделить строку с некоторым разделителем, но не удаляя этот разделитель в Java?

Мне нужно взять "Hello World" и получить ["Hello", "", "World"]

Ответы [ 3 ]

16 голосов
/ 20 ноября 2011

Для этого вы можете использовать Regex.Split().Если вы заключите шаблон в круглые скобки, он также будет включен в результат:

Regex.Split("Hello World", "( )")

даст вам именно то, что вы хотели.

1 голос
/ 20 ноября 2011

Если вы разделите только границу слова, вы получите нечто очень близкое к тому, что вы просите.

    string[] arr = Regex.Split("A quick brown fox.", "\\b");

arr [] = {"", "A", "", "quick", "", brown "," "," fox ",". " }

1 голос
/ 20 ноября 2011

Вы можете использовать регулярное выражение, хотя это, вероятно, излишнее количество:

StringCollection resultList = new StringCollection();
Regex regexObj = new Regex(@"(?:\b\w+\b|\s)");
Match matchResult = regexObj.Match(subjectString);
while (matchResult.Success) {
    resultList.Add(matchResult.Value);
    matchResult = matchResult.NextMatch();
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...