0

私はこのような文を持っています:

"Hey  what is up

の後の 2 つのスペースに注意してくださいHey

次の正規表現を使用して、この文を文字列の配列に分割しています。

string[] tokensArr = Regex.Split(data, "( )");

さて、私にとっては、各スペースも個別の文字列として持つことが重要です。しかし、行に複数のスペースを挿入すると、分割は 2 つではなく 3 つのスペース文字列を返します (行に 3 つのスペースがある場合は 5 を返します)。デバッガーの余分なものはこのように見えますが、 では""ありません" "。なぜ挿入されるのですか?実際に挿入したスペースだけを残すにはどうすればよいですか?

もう一度明確にするために: 私の意図は、ダブル/トリプルスペースをフィルター処理することではありません.しかし、それらを分割するときに余分なスペースを取り除くことです.試してみてください:

2 つの単語の間にダブル スペースを入れてテキストを入力します。上記の方法で実行すると、スペース 3 の 2 つの項目ではなく、分割されたリターンが表示されます。

4

2 に答える 2

1

スペースが 2 つあるのに、なぜアイテムが追加されるのか疑問に思っている場合は、それが何をしようとしているのかを考えてみてください。各スペースの間に各文字列を取ります。2 つのスペースがある場合、それらの間の文字列は空ですが、それでも有効な文字列であることは確かです。

別の考え方としては、たとえば「a」などの単語を文字で分割する場合、分割から返される値のいずれにも「a」は含まれないということです。スペースで分割すると、返される値にスペースは含まれません。

于 2013-06-14T13:56:26.523 に答える