我有一个字符串,比如说,
string temp1 = "25 10 2012"
但我想要这个,
"2012 10 25"
这样做的最佳方式是什么。格式总是这样。
答案 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)