有没有办法使用 String.Format() 来 trim 前导字符?
Is there a way to trim leading characters using String.Format()?
需要知道有一种方法可以使用 String.Format 从字符串中删除前导字符。我在一些现有代码中有一个限制,我只能为其传递一个字符串和一个格式字符串。
那你能不能做点像
String.Format("Test output: {0:#}","001")
并生成输出
"Test output: 1"
我认为答案是 'No' 但我想确定一下。
编辑:为澄清起见,格式字符串将放入配置文件中,要格式化的字符串是来自数据库的值。我无法在其上执行任何代码。必须通过格式字符串。
您可以在传递的参数上执行此操作
String.Format("Test output: {0:#}", "001".TrimStart('0'))
或者,您可以在结果字符串上使用正则表达式进行查找和替换。
另一种选择是使用 IFormatProvider
的自定义实现来定义和传递您自己的格式化程序。根据您的上次编辑,我不确定是否允许这样做。
但是,根据列出的限制,仅使用格式字符串输入是无法做到的
需要知道有一种方法可以使用 String.Format 从字符串中删除前导字符。我在一些现有代码中有一个限制,我只能为其传递一个字符串和一个格式字符串。
那你能不能做点像
String.Format("Test output: {0:#}","001")
并生成输出
"Test output: 1"
我认为答案是 'No' 但我想确定一下。
编辑:为澄清起见,格式字符串将放入配置文件中,要格式化的字符串是来自数据库的值。我无法在其上执行任何代码。必须通过格式字符串。
您可以在传递的参数上执行此操作
String.Format("Test output: {0:#}", "001".TrimStart('0'))
或者,您可以在结果字符串上使用正则表达式进行查找和替换。
另一种选择是使用 IFormatProvider
的自定义实现来定义和传递您自己的格式化程序。根据您的上次编辑,我不确定是否允许这样做。
但是,根据列出的限制,仅使用格式字符串输入是无法做到的