更改字符串中单词的位置

时间:2012-10-25 12:19:39

标签: c# .net-3.5

我有一个字符串,比如说,

string temp1 = "25 10 2012"

但我想要这个,

"2012 10 25"

这样做的最佳方式是什么。格式总是这样。

6 个答案:

答案 0 :(得分:11)

看起来像是约会。您可以使用DateTime.ParseExact将字符串解析为DateTime,然后使用.ToString返回格式化结果。

DateTime dt = DateTime.ParseExact(temp1, "dd MM yyyy", CultureInfo.InvariantCulture);
Console.Write(dt.ToString("yyyy MM dd"));

您可以稍后在代码中使用该DateTime对象,并应用不同的格式(如果需要)

答案 1 :(得分:1)

您可以使用Split命令然后重新组合子字符串来执行此操作:

String[] subStrs = temp1.Split( ' ' );
String   final   = subStrs[2] + " " + subStrs[1] + " " + subStrs[0];

答案 2 :(得分:1)

所以你想要分词并改变顺序,你可以使用LINQ:

var words = temp1.Split(' ');
String newWord = string.Join(" ", words.Reverse());

或者如果您不想交换所有单词但只交换第一个和最后一个单词:

String first = words.Last();
String last = words.First();
String newWord = first + " " 
                 + string.Join(" ", words.Skip(1).Take(words.Length - 2)) 
                 + " " + last;

答案 3 :(得分:1)

尝试这个拆分字符串和反向数组,这将适用于任何长度的字符串...

string[] myArray = temp1.Split(' ');
 Array.Reverse( myArray );
string reverse =string.Join(" ", myArray );

答案 4 :(得分:0)

您可以使用RegEx或拆分字符串并以相反的顺序重新加入。

string s = "2012 10 25";
string[] tokens = s.Split(' ');
Array.Reverse(tokens);
string final = string.Join(" ", tokens);

答案 5 :(得分:0)

如果您的字符串始终为10个字符(带空格),您可以执行以下操作:

string str = "26 10 2012"
str = str.Substring(6, 4) + " " + str.Substring(3, 2) + " " + str.Substring(0, 2)