喜欢的东西:How to split String with some separator but without removing that separator in Java?按空格拆分字符串而不删除空格?
我需要的 “Hello World”,并得到[ “你好”, “”, “世界”]
喜欢的东西:How to split String with some separator but without removing that separator in Java?按空格拆分字符串而不删除空格?
我需要的 “Hello World”,并得到[ “你好”, “”, “世界”]
您可以使用正则表达式,尽管它可能是矫枉过正:
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();
}
如果你只是分开边界,你会得到非常接近你要求的东西。
string[] arr = Regex.Split("A quick brown fox.", "\\b");
ARR [] = { “”, “A”, “”, “快”, “”, “褐色”, “”, “狐狸”, “” }
除了'string.Split()'不适用于正则表达式。 – svick
是的,我在描述的第一行看到了对Java的引用,并忽略了C#的标签。 – phatfingers
我修改了用C#编写的示例代码。数组结果是相同的。 – phatfingers
+1为优雅的解决方案。为什么他没有把你的答案标记为正确的...... –
为什么?你为什么不能假设每两个元素之间有一个空间? – SLaks
为什么?你知道分隔符是一个空格,所以对于结果数组的每个元素,在连续元素之间会有一个空格。如果你使用string.Join(),你可以把空间放回去。我很困惑你为什么在分割结果中需要它。 – slugster
如果你好和世界被不止一个空间隔开,你会想要回来什么? –