📜  将字符串解析为单词 C# (1)

📅  最后修改于: 2023-12-03 15:25:17.832000             🧑  作者: Mango

将字符串解析为单词

在C#中,我们可以使用一些内置的方法和类将字符串解析为单词。

方法一:使用Split函数

使用Split函数可以将字符串根据指定的分隔符分成单词的数组。例如下面的代码可以将字符串"Hello World"分成两个单词:

string str = "Hello World";
string[] words = str.Split(' ');

其中,参数' '表示以空格为分隔符。

方法二:使用Regex类

使用Regex类可以将字符串中的每个单词匹配出来。例如下面的代码可以将字符串"Hello World"中的每个单词输出:

string str = "Hello World";
Regex rgx = new Regex(@"\b\w+\b");
MatchCollection matches = rgx.Matches(str);
foreach (Match match in matches)
{
    Console.WriteLine(match.Value);
}

其中,"\b\w+\b"表示正则表达式,它可以匹配出字符串中的单词。

方法三:使用StringReader类

使用StringReader类可以将字符串读成一个字符流,然后按单词一个一个读出来。例如下面的代码可以将字符串"Hello World"中的每个单词输出:

string str = "Hello World";
StringReader reader = new StringReader(str);
while (reader.Peek() != -1)
{
    string word = reader.ReadWord();
    Console.WriteLine(word);
}

其中,ReadWord()是自定义的字符串扩展方法,其代码如下:

public static class StringExtensions
{
    public static string ReadWord(this StringReader reader)
    {
        StringBuilder sb = new StringBuilder();
        while (reader.Peek() != -1)
        {
            char c = (char)reader.Peek();
            if (char.IsLetterOrDigit(c))
            {
                sb.Append(c);
                reader.Read();
            }
            else
            {
                if (sb.Length > 0) break;
                reader.Read();
            }
        }
        return sb.ToString();
    }
}

这个扩展方法将从流中读取一个单词,并返回它的字符串表示形式。

无论使用哪种方法,都可以将一个字符串解析成单词。根据实际需求选择合适的方法即可。