0

文字列があるとしましょう

String data = "<span> 0397]);}}:;)]</span>";

次に、それを char 配列に送信します

Char[] charData = data.ToCharArray();

このデータを調べて、すべての不要なデータを配列の最後に置き換えるにはどうすればよいでしょうか。ただし、移動された現在の文字からすべてのデータを 1 つ残して、最後に不要なデータ用のスペースを空けることができます。

Char[] sendToEnd = { ';', ')', '}', ']' };

ループを試みましたが、既にスワップされたデータをループすると無限ループが発生します。

最後に、文字列データは

"<span> 0397</span>]);}}:;)]"
4

2 に答える 2

4
var str = new String(data.Where(c => !sendToEnd.Contains(c))
                         .Concat(data.Where(c => sendToEnd.Contains(c)))
                         .ToArray());

sendToEndまた、次のように宣言する

var sendToEnd = new HashSet<char>(new char[] { ';', ')', '}', ']' });

より良いパフォーマンスを提供できます

于 2012-12-13T15:39:59.453 に答える
1

最初に文字を末尾に移動する代わりに、それらを別の配列に移動し、配列を結合して最終的な文字列を形成します。

于 2012-12-13T15:36:34.053 に答える