5

我有一个字符串可以说,

string temp1 = "25 10 2012"

但我想要这个,

"2012 10 25"

最好的方法是什么。格式永远是这样的。

4

7 回答 7

11

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

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

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

于 2012-10-25T12:21:36.790 回答
2

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

string[] myArray = temp1.Split(' ');
 Array.Reverse( myArray );
string reverse =string.Join(" ", myArray );
于 2012-10-25T12:22:47.300 回答
1

您可以使用 Split 命令然后重新组合子字符串:

String[] subStrs = temp1.Split( ' ' );
String   final   = subStrs[2] + " " + subStrs[1] + " " + subStrs[0];
于 2012-10-25T12:21:14.743 回答
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;
于 2012-10-25T12:22:03.910 回答
0

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

string s = "2012 10 25";
string[] tokens = s.Split(' ');
Array.Reverse(tokens);
string final = string.Join(" ", tokens);
于 2012-10-25T12:21:46.700 回答
0

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

string str = "26 10 2012"
str = str.Substring(6, 4) + " " + str.Substring(3, 2) + " " + str.Substring(0, 2)
于 2012-10-25T12:22:46.903 回答
0

你可以使用 string.split(" ").reverse().join(" ")。

您可以使用拆分,此功能会将您的字符串拆分为空白数组作为条件,然后反转数组并根据空白重新加入

let string="25 10 2012";
let output=string.split(" ").reverse().join(" ");

console.log(output)

于 2021-12-08T09:59:06.433 回答