c# - 字符串自定义格式化程序 .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 方面。
解决方案
当然,您只需要:
- 将源字符串拆分为其组件,
- 使用
{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
推荐阅读
- twilio - 如何设置 RingCentral 限制
- delphi - Delphi 无法打开数据库
- javascript - React Flash Message:如何使消息显示而不刷新页面但刷新200
- html - 如何在移动浏览器上显示应用程序下载小部件
- prisma - 如何过滤 Prisma 中的相关对象?
- ios - Apple Shortcuts SSH 停止命令
- java - 未能执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
- c++ - 使用指针设置 8 位灰度图像的像素颜色
- python - 如何汇总具有相同日期的所有值并使用 pandas 和 seaborn 绘制它?
- html - 用于验证的输入样式