📅  最后修改于: 2023-12-03 15:25:17.832000             🧑  作者: Mango
在C#中,我们可以使用一些内置的方法和类将字符串解析为单词。
使用Split函数可以将字符串根据指定的分隔符分成单词的数组。例如下面的代码可以将字符串"Hello World"分成两个单词:
string str = "Hello World";
string[] words = str.Split(' ');
其中,参数' '表示以空格为分隔符。
使用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类可以将字符串读成一个字符流,然后按单词一个一个读出来。例如下面的代码可以将字符串"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();
}
}
这个扩展方法将从流中读取一个单词,并返回它的字符串表示形式。
无论使用哪种方法,都可以将一个字符串解析成单词。根据实际需求选择合适的方法即可。