0

假设我们有一个字符串

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

然后我们将它发送到一个 char 数组中

Char[] charData = data.ToCharArray();

我如何处理这些数据并将所有不需要的数据替换到数组的末尾,但将所有数据从当前已移动的字符中移出一个,以便在末尾为不需要的数据腾出空间。

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 回答