C# 无法将每个有空格的单词分开并将其存储在数组中以用于某些文本

C# 无法将每个有空格的单词分开并将其存储在数组中以用于某些文本,c#,asp.net,.net,C#,Asp.net,.net,对不起,问题有点长 我有一个字符串“你好” 当我在ASP.NETC中将其传递给此函数时# 但当我把这篇课文作为主题时。我得到了一个错误的输出 这是文本 Fusion Technologies, Hyderabad, India May 2005 – July 2007 Net Developer 一切都很好,除了 India May 它被视为一根连在一起的绳子。我需要他们两个分开 string data = "Fusion Technolo

对不起,问题有点长

我有一个字符串
“你好”

当我在ASP.NETC中将其传递给此函数时#

但当我把这篇课文作为主题时。我得到了一个错误的输出

这是文本

Fusion Technologies, Hyderabad, India                           May 2005 – July 2007
Net Developer
一切都很好,除了

India May
它被视为一根连在一起的绳子。我需要他们两个分开

string data = "Fusion Technologies, Hyderabad, India                 May 2005 ";
var items = data.Split(
                       new[] {' ', ',', '\t' }, 
                       StringSplitOptions.RemoveEmptyEntries);
输出:

[0]: "Fusion"
[1]: "Technologies"
[2]: "Hyderabad"
[3]: "India"
[4]: "May"
[5]: "2005"
输出:

[0]: "Fusion"
[1]: "Technologies"
[2]: "Hyderabad"
[3]: "India"
[4]: "May"
[5]: "2005"

虽然在您的代码示例中,单词是用空格分隔的,但实际文本可能有制表符或其他空格字符分隔单词。你会想做一个

text = text.Replace("\t", " ");

或者在拆分文本之前执行类似操作。

尽管在代码示例中,单词用空格分隔,但实际文本可能有制表符或其他空格字符分隔单词。你会想做一个

text = text.Replace("\t", " ");

或者在拆分文本之前执行类似操作。

可能
India May
被视为单个字符串,因为它们之间没有空格(例如其他空格,如
\t

试试这个,看看它是否有效:

string[] seperatedWords = text.Split(default(string[]), 
    StringSplitOptions.RemoveEmptyEntries);

默认值(字符串[])
只是
null
。当接收到
null
作为第一个参数时,它将所有空格字符(由匹配的)视为delimeters。

可能
India May
被视为单个字符串,因为它们之间没有空格(例如其他空格,如
\t

试试这个,看看它是否有效:

string[] seperatedWords = text.Split(default(string[]), 
    StringSplitOptions.RemoveEmptyEntries);

默认值(字符串[])
只是
null
。当接收到
null
作为第一个参数时,它会将所有空格字符(由匹配的)视为分隔符。

或者更好,还可以将
'\t'
定义为分隔符:
data.Split(new char[]{','\t'})
或者更好,将
'\t'
定义为分隔符:
data.Split(new char[]{','\t})
这并不能解决他的问题,因为他说“印度”和“梅”在同一条线上,而你的解决方案并不能真正解决这个问题。@Lester:请你详细说明一下,对不起,我没有理解你关于“同一条线”的观点。我先试了你的,结果和我的一样,后来我又试了吉米的,效果很好。我会把你的答案作为我的第二个备份+问题是“India May”在数组中被视为一个单词。“India”和“May”之间的间距在结果数组中不是空条目,因此使用建议的重载不会改变任何内容。我相信再添加一个分隔符
'\t'
可以解决问题。在发布答案之前,我复制了示例文本并检查了我提供的代码,因此它可以工作,因为在单词之间只找到空格符号,不确定为什么没有制表符,但我添加了制表符分隔符以保持解决方案更一般。这并不能解决他的问题,因为他说“印度”和“可能”在同一行,你的解决方案并不能真正解决这个问题。@Lester:请你详细说明一下,对不起,我没有理解你关于“同一条线”的观点。我先试了你的,结果和我的一样,后来我又试了吉米的,效果很好。我会把你的答案作为我的第二个备份+问题是“India May”在数组中被视为一个单词。“India”和“May”之间的间距在结果数组中不是空条目,因此使用建议的重载不会改变任何内容。我相信再添加一个分隔符
'\t'
可以解决问题。在发布答案之前,我复制了示例文本并检查了我提供的代码,所以它可以工作,因为单词之间只找到空格符号,不确定为什么没有制表符,但我添加了制表符分隔符以保持解决方案更通用,我复制了您提供的文本,并且没有制表符,我已复制了您提供的文本,并且没有选项卡符号