首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET C# String.Split

ASP.NET C# String.Split
EN

Stack Overflow用户
提问于 2011-06-14 17:07:21
回答 4查看 11.3K关注 0票数 4

如果单词之间有空格,我想拆分字符串。

例如:

代码语言:javascript
复制
"Blood Doner Jack Stv 240 o+"

当我用一个空格拆分它时,它返回一个包含6个项目的数组对象,但如果我用相同的文本集尝试它,有2个空格代替一个空格,它会将数组增加到7:

代码语言:javascript
复制
"Blood  Doner Jack Stv 240 o+"

所以我想知道如何删除用双空格和单空格拆分它。

我知道我可以用2个空格代替1个空格来替换(),但是如果我有3到4个空格呢?

提前感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-14 17:09:19

您可以使用overload of String.Split which takes a StringSplitOptions

代码语言:javascript
复制
string[] bits = text.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);

请注意,为了避免在每次调用时创建字符数组,您可以使用:

代码语言:javascript
复制
private static readonly char[] SplitSeparators = {' '};

...

string[] bits = text.Split(SplitSeparators,
                           StringSplitOptions.RemoveEmptyEntries);
票数 15
EN

Stack Overflow用户

发布于 2011-06-14 17:10:22

只需使用StringSplitOptions.RemoveEmptyEntries即可

代码语言:javascript
复制
 var s = "Blood  Doner Jack Stv 240 o+";
 var arr = s.Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries);

或者您可以使用Regexp将多个空格替换为一个空格,然后拆分:

代码语言:javascript
复制
string str = System.Text.RegularExpressions.RegEx.Replace(s ,@"\s+"," ");
var arr = str.Split(new[] {" "}, StringSplitOptions.None);
票数 4
EN

Stack Overflow用户

发布于 2011-06-14 17:10:21

这将删除空格:

代码语言:javascript
复制
RegexOptions options = RegexOptions.None;
Regex regex = new Regex(@"[ ]{2,}", options);     
tempo = regex.Replace(tempo, @" ");

然后你就可以正常拆分了

How do I replace multiple spaces with a single space in C#?

How to remove extra space between two words using C#?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6341360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档