1

我有一串几百字的字符串。

我将如何获取每个“单词”(这也可以是单个字母数字或标点符号),并且在找到每个“单词”时,将其从字符串中删除。

这可能吗?

示例

细绳:

“这是一个充满单词和字母的字符串,还有一些标点符号!和 num6er5。”

就算法而言,上述字符串中正好有 15 个单词。

4

1 回答 1

2

您正在尝试做的事情称为标记化。

在 C# 中,字符串 Split() 函数运行良好。如果它像在 Niedermair 的代码中一样使用,没有任何参数,它会返回一个字符串数组,由任何空格分割(分割?),如下所示:

“我有空格”-> {“我”,“有”,“空格”}

您还可以将要拆分的任何字符作为参数提供给 Split()(例如,',' 或 ';' 来处理 csv 文件)。

Split() 方法不关心字符串中的内容,因此将处理任何字母、数字和其他字符。

关于从字符串中删除单词:您可能希望将字符串写入缓冲区以实现此目的,但我认为这太过分了。字符串是不可变的,这意味着每当您删除“下一个单词”时,您都必须重新创建整个字符串对象。只拆分()整个字符串,将字符串扔掉,然后从那里开始使用数组会容易得多。

于 2010-07-14T08:56:39.163 回答