代码之家  ›  专栏  ›  技术社区  ›  strager

反面字符串。格式?[副本]

  •  9
  • strager  · 技术社区  · 16 年前

    可能重复:
    Parsing formatted string.

    我如何使用 String.Format

    例如:

    string formatString = "My name is {0}.  I have {1} cow(s).";
    
    string s = String.Format(formatString, "strager", 2);
    
    // Call the magic method...
    ICollection<string> parts = String.ReverseFormat(formatString, s);
    // parts now contains "strager" and "2".
    

    我知道我可以使用正则表达式来实现这一点,但我希望使用相同的格式字符串,所以我只需要维护一行代码,而不是两行。

    3 回复  |  直到 9 年前
        1
  •  1
  •   BobbyShaftoe    16 年前

    下面是一些试图在C#中使用Scanf等效程序的人的代码:

    http://www.codeproject.com/KB/recipes/csscanf.aspx

        2
  •  1
  •   Joel Coehoorn    16 年前

    StringBuilder.AppendFormat() ). 它是免费提供的,它使用状态机以一种非常高效的方式遍历字符串。您可以模拟该代码来遍历格式化的字符串并提取数据。

    InvertFormat() ,因为ReverseFormat听起来像是您期望的输出:

    )s(woc 2评估恢复si eman yM

        3
  •  0
  •   John Rudy    16 年前

    params -标记的数组参数,例如 String.Format() . 除此之外,我不相信有什么方法可以让C#&the.NET Framework知道stringx是用魔法格式stringy构建的,并撤消合并。

    因此,我能想到的唯一一件事就是你可以这样格式化你的代码:

    object[] parts = {"strager", 2};
    string s = String.Format(formatString, parts);
    
    // Later on use parts, converting each member .ToString()
    foreach (object p in parts)
    {
        Console.WriteLine(p.ToString());
    }