如何使用 String.Format 将布尔类型转换为“ON”“OFF”

Posted

技术标签:

【中文标题】如何使用 String.Format 将布尔类型转换为“ON”“OFF”【英文标题】:How to convert Boolean type into "ON" "OFF" using String.Format 【发布时间】:2011-06-03 02:31:53 【问题描述】:

有什么方法可以使用字符串格式化程序将布尔类型转换为“ON”/“OFF”,例如:

Dim inpValue as Boolean
Dim outValue = String.Format("0:ON;OFF", inpValue)
' should show OFF as output

没有代码或 IFormatProvider?

【问题讨论】:

【参考方案1】:

这是来自another question 的一个疯狂技巧,但它完全不可读。我强烈建议你不要这样做!如果您有紧张的性格,请立即停止阅读。

String.Format("0:ON;ON;OFF", CDbl(inpValue)) 

这会将Boolean 转换为-10,然后使用custom numeric format。

【讨论】:

【参考方案2】:

c# - 不是最优雅但最有效的:

字符串 outValue = inpValue.ToString().Replace("False", "OFF").Replace("True", "ON");

【讨论】:

我的眼睛在流血!字符串操作是一种非常糟糕的逻辑实现。 毫无疑问(我承认)。对不起你的眼睛! VB 的 IIf 的 C# 等价物: var outValue = inpValue ? “开”:“关”;【参考方案3】:

您无法使用 String.Format 执行此操作(不实现 IFormatProvider,这对于您的目的来说似乎有点过头了),但您可以使用 IIf 在一行中执行此操作:

IIf(inpValue, outValue=True, outValue=False)

我个人建议使用 If/Else 语句而不是 IIf,因为 IIf 对于一些来自其他语言的程序员来说并不直观。

【讨论】:

【参考方案4】:

有什么问题:

Dim inpValue as Boolean
Dim outValue = If(inpValue, "ON", "OFF")

【讨论】:

【参考方案5】:

据我所知,没有任何内置支持。但是,根据您的控制程度,您可以创建自己的格式提供程序 (IFormatProvider)。这是一个讨论的链接:bool format provider。

【讨论】:

【参考方案6】:

这应该对你有帮助:

http://www.developmentnow.com/g/38_2004_4_0_0_238356/iformatprovider-for-boolean.htm

【讨论】:

以上是关于如何使用 String.Format 将布尔类型转换为“ON”“OFF”的主要内容,如果未能解决你的问题,请参考以下文章

java String format占位符

最全JAVA字符串格式化-String.format()的使用 [记录贴]

最全JAVA字符串格式化-String.format()的使用 [记录贴]

String.format介绍

Java中的String.format

js类型转换 之 转字符串及布尔类型