首页 > 解决方案 > 字符串自定义格式化程序 .NET

问题描述

我有一个自定义格式字符串的问题。
我想做这样的事情:

var str = "SOME_ORIGINAL_FIELD_NAME";
var format1 = "XX_X_X";
var format2 = "X_XXX";

var strFormat1 = String.Format(str, format1); // SOMEORIGINAL_FIELD_NAME
var strFormat2 = String.Format(str, format2); // SOME_ORIGINALFIELDNAME

有人知道正确的搜索方向吗?也许我应该看看 IFormatProvider 和 ICustomFormatter 方面。

标签: c#.netstringformatting

解决方案


当然,您只需要:

  • 将源字符串拆分为其组件,
  • 使用{i}占位符代替X, 和
  • 将参数反转为String.Format(首先是格式,然后是数据)。

示例代码(小提琴):

var components = "SOME_ORIGINAL_FIELD_NAME".Split('_');
var format1 = "{0}{1}_{2}_{3}";
var format2 = "{0}_{1}{2}{3}";

var strFormat1 = String.Format(format1, components); // SOMEORIGINAL_FIELD_NAME
var strFormat2 = String.Format(format2, components); // SOME_ORIGINALFIELDNAME

推荐阅读