如何使用C#中的单词将文本值拆分为数组?

时间:2010-09-09 11:55:13

标签: c# arrays string

是否可以将txtSearche的值保存在分割成单独字的数组中?

txtSearche = "put returns between paragraphs";

类似的东西:

 StringBuilder sb = new StringBuilder(txtSearche);

array1 = sb[1]   = put
array2 = sb[2]   = returns
array3 = sb[3]
array4 = sb[4]
array5 = sb[5]

如何做到正确?

7 个答案:

答案 0 :(得分:19)

是的,试试这个:

string[] words = txtSearche.Split(' ');

会给你:

words[0]   = put
words[1]   = returns
words[2]   = between
words[3]   = paragraphs

编辑:同样如下面提到的 Adkins ,单词数组将创建为提供的字符串所需的任何大小。如果您希望列表具有动态大小,我会说使用List wordList = words.ToList();

将数组放入列表中

编辑:Nakul 要拆分一个或更多空格,只需将它们作为参数添加到Split()方法中,如下所示:

txtSearche.Split(new string[] { " ", "  ", "   " }, StringSplitOptions.None);

或者您可以简单地通过单个空格分隔并忽略由连续空格引起的空白条目,使用StringSplitOptions.RemoveEmptyEntries枚举,如此

txtSearche.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

答案 1 :(得分:4)

您可以使用String.Split

答案 2 :(得分:2)

下面的示例将字符串拆分为一个数组,每个单词都作为项目...

string [] words = txtSearche.Split('');

您可以找到更多详情here

答案 3 :(得分:2)

上述所有内容均不适用于多个空格或新行 !!!

以下是与他们合作的内容:

 string text = "hi!\r\nI am     a wonderful56 text... \r\nyeah...";
 string[] words =Regex.Split(text, @"\s+", RegexOptions.Singleline);

如果你需要删除省略号,那么需要更多的处理,我也可以给你。

<强>更新

事实上这更好:

 string text = "hi!\r\nI am     a wonderful56 text... \r\nyeah...";
 MatchCollection matches = Regex.Matches(text, @"[\w\d_]+", RegexOptions.Singleline);
 foreach (Match match in matches)
 {
   if(match.Success)
      Console.WriteLine(match.Value);
  }

<强>输出

喜 一世 上午 一个 wonderful56 文本 耶

答案 4 :(得分:1)

StringBuilder sb = new StringBuilder(txtSearche); 

var result  =  sb.Tostring().Split(' '); 

答案 5 :(得分:0)

如果你想要一个更完整的解决方案,而不是完全担心性能问题,你可以使用这个单行代码来处理标点符号等,并为你提供一系列单词。

string[] words = Regex.Replace(Regex.Replace(text, "[^a-zA-Z0-9 ]", " "), @"\s+", " ").Split(' ');

答案 6 :(得分:0)

private void button1_Click(object sender, EventArgs e)
{
    string s = textBox1.Text;            
    string[] words = s.Split(' ');           
    textBox2.Text = words[0];
    textBox3.Text = words[1];
}