【问题标题】:Changing position of words in a string更改字符串中单词的位置
【发布时间】:2012-10-15 15:04:22
【问题描述】:

我有一个字符串可以说,

string temp1 = "25 10 2012"

但我想要这个,

"2012 10 25"

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

【问题讨论】:

  • Best way to reverse a string 的可能重复项
  • 你总是想颠倒字符串或颠倒词序吗??
  • @PLB yup 格式始终是固定的
  • 你确定你不是在寻找 DateTime 解析和/或格式化吗?
  • 不,因为我从无法更改的方法中获取字符串而不是日期。

标签: c# .net-3.5


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • @PranayRana:嗯,他在他的 cmets 中声明格式总是相同的......
      【解决方案4】:

      所以你想拆分单词并改变顺序,你可以使用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;
      

      【讨论】:

        【解决方案5】:

        您可以使用正则表达式或拆分字符串并以相反的顺序重新加入。

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

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

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

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

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

            【讨论】:

              猜你喜欢
              • 2023-03-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多