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

単語を分割して順序を変更したい場合は、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 に答える
1

Split コマンドを使用してそれを実行し、サブ文字列を再結合できます。

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