1

数百語でいっぱいの文字列があります。

各「単語」を取得するにはどうすればよいですか (これは 1 文字の数字または句読点でもかまいません)。各「単語」が見つかると、文字列から削除されます。

これは可能ですか?

弦:

「これは、単語と文字と句読点でいっぱいの文字列です! num6er5.」

アルゴリズムに関する限り、上記の文字列にはちょうど 15 個の単語があります。

4

1 に答える 1

2

あなたがやろうとしていることは、トークン化として知られています。

C# では、文字列の Split() 関数がうまく機能します。Niedermair のコードのようにパラメーターなしで使用すると、次のようにスペースで分割された (分割された?) 文字列の配列が返されます。

"I have spaces" -> {"I", "have", "spaces"}

また、Split() のパラメーターとして、分割する任意の文字を指定することもできます (たとえば、csv ファイルを処理するための「,」または「;」)。

Split() メソッドは、文字列に入る内容に注意を払わないため、文字、数字、およびその他の文字が処理されます。

文字列から単語を削除することについて: これを実現するために文字列をバッファに書きたいと思うかもしれませんが、それは行き過ぎだと真剣に考えています。文字列は不変です。つまり、「次の単語」を削除するたびに、文字列オブジェクト全体を再作成する必要があります。文字列全体を Split() し、文字列を捨てて、そこから配列を操作する方がはるかに簡単です。

于 2010-07-14T08:56:39.163 に答える