首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否仅在C#中的第一个分隔符上使用String.Split?

是否仅在C#中的第一个分隔符上使用String.Split?
EN

Stack Overflow用户
提问于 2010-01-07 19:05:29
回答 4查看 67.5K关注 0票数 78

String.Split便于在分隔符上使用多个部分来拆分字符串。

我应该如何继续只在第一个分隔符上拆分字符串。我有一根绳子

代码语言:javascript
复制
"Time: 10:12:12\r\n"

我想要一个像这样的数组

代码语言:javascript
复制
{"Time","10:12:12\r\n"}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-07 19:11:15

最好的方法有点取决于您希望解析的灵活性,考虑到可能的额外空格等等。检查确切的格式规范以了解您需要的内容。

代码语言:javascript
复制
yourString.Split(new char[] { ':' }, 2)

将限制您两个2个子字符串。但是,这不会修剪第二个字符串开头的空格。不过,您可以在拆分之后的第二个操作中完成此操作。

代码语言:javascript
复制
yourString.Split(new char[] { ':', ' ' }, 2,
    StringSplitOptions.RemoveEmptyEntries)

应该可以工作,但如果您试图拆分包含空格的标头名称,则会中断。

代码语言:javascript
复制
yourString.Split(new string[] { ": " }, 2,
    StringSplitOptions.None);

将完全按照您所描述的进行操作,但实际上需要存在空间。

代码语言:javascript
复制
yourString.Split(new string[] { ": ", ":" }, 2,
    StringSplitOptions.None);

使空格成为可选的,但如果有多个空格,您仍然需要使用TrimStart()

为了保持格式的灵活性和代码的可读性,我建议使用第一个选项:

代码语言:javascript
复制
string[] split = yourString.Split(new char[] { ':' }, 2);
// Optionally check split.Length here
split[1] = split[1].TrimStart();
票数 147
EN

Stack Overflow用户

发布于 2010-01-07 19:10:05

在上面的示例中,您可以拆分":“(即,冒号后面有空格),因为这似乎就是您所做的。如果您确实在第一个分隔符上进行了拆分,那么您将在第二个数组元素中看到一个前导空格。

但是,您可能应该看看这种超载的Split...

http://msdn.microsoft.com/en-us/library/c1bs0eda.aspx

代码语言:javascript
复制
public string[] Split(
  char[] separator,
  int count
)

..。这允许您指定子字符串的最大数量。

票数 14
EN

Stack Overflow用户

发布于 2010-01-07 19:13:34

代码语言:javascript
复制
?("Time: 10:12:12\r\n").Split(new char[] { ':', ' ' }, 2, 
   StringSplitOptions.RemoveEmptyEntries)
{Dimensions:[2]}
    [0]: "Time"
    [1]: "10:12:12\r\n"

其他选项:

代码语言:javascript
复制
?("Time: 10:12:12\r\n").Split(new char[] { ':' }, 2)
{Dimensions:[2]}
    [0]: "Time"
    [1]: " 10:12:12\r\n"
?("Time: 10:12:12\r\n").Split(new char[] { ':' }, 1)
{Dimensions:[1]}
    [0]: "Time: 10:12:12\r\n"
?("Time: 10:12:12\r\n").Split(new char[] { ':' }, 3)
{Dimensions:[3]}
    [0]: "Time"
    [1]: " 10"
    [2]: "12:12\r\n"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2019738

复制
相关文章

相似问题

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