如何从文本框中获取单词

时间:2014-12-26 05:38:52

标签: c# wpf

在我的WPF应用程序中,我有一个名为:textBox的文本框。 我试图从用户在字符串数组中输入的句子中获取每个单词,比如arrayWords。 我在stackOverFlow上找到了一段代码来计算单词的数量,但我想复制每个单词。

Bellow是计算单词数量的代码。

String text = textBox.Text.Trim();
int wordCount = 0, index = 0;

while (index < text.Length)
{
     // check if current char is part of a word
     while (index < text.Length && Char.IsWhiteSpace(text[index]) == false)
        index++;
     wordCount++;

    // skip whitespace until next word
    while (index < text.Length && Char.IsWhiteSpace(text[index]) == true)
        index++;
}

6 个答案:

答案 0 :(得分:2)

您可以使用String.Split功能。

String text = textBox.Text.Trim()
var words = text.Split(' ');

 var words = text.Split(); // Default parameter is taken as whitespace delimiter

答案 1 :(得分:2)

虽然@dotNET答案是正确的,但它假定你应该自己维护标点符号列表(他的回答并不完整)。此外,可能会有连字符的单词。

我建议使用正则表达式:

var words = Regex.Matches(textBox.Text, @"\w+-?\w+")
    .OfType<Match>()
    .Select(m => m.Value)
    .ToArray();

答案 2 :(得分:0)

以下代码将提供textBox中的单词数组。

string[] words = textBox.Text.Split(" ");

答案 3 :(得分:0)

 string[] words = textBox.Text.Split(new char(" "));

答案 4 :(得分:0)

String.Split()可以将你的句子切成单词。但是,您应该注意从您的单词中修剪标点字符。例如,如果你在句子上使用Split()“StackOverflow很好,我喜欢它。”,你在数组中得到的两个单词将附加逗号和句点字符。所以你应该使用这样的东西来获得“纯粹”的话:

string[] words = textBox.Text.Split().Select(x => x.TrimEnd(",.;:-".ToCharArray())).ToArray();

LINQ已用于上述语句中,因此您应导入System.Linq

答案 5 :(得分:0)

从句子中获取单词背后的逻辑是,首先将句子分成单词然后将这些单词存储到一个字符串数组中然后你可以做任何你想要的事情。下面的代码肯定会帮助您解决问题。

 static void Main(string[] args)
    {
        string sentence = "Thats the sentence";
        string[] operands = Regex.Split(sentence,@" ");
        foreach(string i in operands)
        {
            Console.WriteLine(i);
        }
        Console.ReadLine();
    }

它将从句子中提取单词并存储在数组中并显示它们。