拆分一个字符串并以不同的顺序将它连接在一起?

时间:2012-10-24 16:51:13

标签: c#

分割字符串并将其以不同顺序重新连接在一起的最简洁,最易读的方法是什么。例如,我想拆分以下字符串:

10-20-30-4000-50000我会通过以下方式执行此操作:

string[] tokens = original.Split('-');

现在我想按照这个顺序把它重新组合在一起:

30-20-10-4000-50000

我知道我可以使用Join将它重新组合成原始形式,但我不希望这样。我现在唯一能想到的是:

string modified = string.Format("{0}{1}{2}{3}{4}",tokens[2],tokens[1],tokens[0],tokens[3], tokens[4]);

我意识到如果我这样做:

string modified = string.Format("{2}{1}{0}{3}{4}", tokens);

它没有保留破折号,这就是我想要的那样做,我应该这样做:

string modified = string.Format("{2}-{1}-{0}-{3}-{4}", tokens);

3 个答案:

答案 0 :(得分:4)

string modified = string.Format("{2}-{1}-{0}-{3}-{4}", tokens);

答案 1 :(得分:2)

使用String.Concat()

string modified = String.Concat(tokens[2], "-", tokens[1], "-", 
                                tokens[0], "-", tokens[3], "-", tokens[4]);

答案 2 :(得分:2)

如果您想使用join,只需重新排序tokens的元素:

// swap tokens #0 and #2:
string tmp = tokens[2];
tokens[2] = tokens[0];
tokens[0] = tmp;

string modified = String.join("-", tokens);