通常我使用流来格式化内容,但在这种情况下?我直到运行时才知道格式。
我希望能够采用类似于以下格式字符串的内容:
你好{0}!您上次登录是在 {1,date:dd/mm/yy}。
...并输入变量“Fire Lancer”和 1247859223,最后得到以下格式化字符串:
你好火枪兵!您最后一次登录是在 17/07/09。
在我使用的其他语言中,内置了对这种东西的支持,例如 pythons 格式字符串方法,但是在 c++ 中似乎没有任何这样的功能,接受不是很安全的 C print 方法。
这也是针对高性能程序的,所以无论我使用什么解决方案,都需要解析一次格式字符串并将其存储(例如,可能通过一个返回带有 Format(string) 方法的 FormatString 对象的 Parse 方法),而不是重新解析每次调用格式方法时的字符串...
最佳答案
您的格式字符串看起来非常像 ICU MessageFormat 中使用的格式字符串.您考虑过使用它吗?
关于C++ 运行时字符串格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1145273/