IFormattable接口提供了ToString()方法的定义,使用该方法可以将对象的值按照指定的格式转化成字符串的功能。
下面是ToString()方法的完整定义。
string ToString( string format, IFormatProvider formatProvider )
其中:
第一个参数告诉方法需要何种格式的输出,而第二个IFormatProvider的参数则允许类型的使用者自定义格式化方法,在本文实现的ToString()方法中,并没有使用到第二个参数。关于IFormatProvider接口请阅读文章《ICustomFormatter及IFormatProvider接口用法揭秘》,本文不做过多说明。下面是完整的实例代码。
using System; using System.Globalization; namespace GreetingExample { public class Greeting : IFormattable { private string name; public Greeting(string name) { this.name = name; } public override string ToString() { return this.ToString("CN",CultureInfo.CurrentCulture); } public string ToString(string format) { return this.ToString(format,CultureInfo.CurrentCulture); } public string ToString(string format, IFormatProvider provider) { if (String.IsNullOrEmpty(format)) format = "CN"; if (provider == null) provider = CultureInfo.CurrentCulture; switch (format.ToUpper()) { case "CN": case "TW": return "你好," + name.ToString(); case "US": case "GB": return "Hello," + name.ToString(); case "JP": return "こんにちは," + name.ToString(); default: throw new FormatException(String.Format("The {0} format string is not supported.", format)); } } } } using System; namespace GreetingExample { class Program { static void Main(string[] args) { Greeting greeting = new Greeting("三五月儿"); Console.WriteLine(greeting.ToString("CN")); Console.WriteLine(greeting.ToString("US")); Console.WriteLine(greeting.ToString("JP")); } } }
下面是代码的运行结果。
问题内容: 我必须使用字典中的值格式化字符串,但是该字符串已经包含大括号。例如: 但是,当然会导致KeyErro。 有没有办法使用不同的符号来使用? 这不是我如何在python字符串中打印文字大括号字符并在其上使用.format的重复项?因为我需要保持大括号不变,并为使用不同的定界符。 问题答案: 语境 python 2.7 允许自定义占位符语法的替代方法 问题 我们要在Python str.fo
问题 你想通过 format() 函数和字符串方法使得一个对象能支持自定义的格式化。 解决方案 为了自定义字符串的格式化,我们需要在类上面定义 __format__() 方法。例如: _formats = { 'ymd' : '{d.year}-{d.month}-{d.day}', 'mdy' : '{d.month}/{d.day}/{d.year}', 'dmy' :
本文向大家介绍C# 格式化字符串的实现代码,包括了C# 格式化字符串的实现代码的使用技巧和注意事项,需要的朋友参考一下 1 前言 如果你熟悉Microsoft Foundation Classes(MFC)的CString,Windows Template Library(WTL)的CString或者Standard Template Library(STL)的字符串类,那么你对String
问题内容: 我正在处理一个包含坐标x,y,z的文本文件 每行使用 处理完数据后,我需要将坐标写回到另一个txt文件中,以便使每一列中的项目(以及输入文件)都正确对齐。每行由坐标组成 C ++中是否有任何类似操纵器的控件可以设置宽度和对齐方式? 问题答案: 使用更新的语法尝试这种方法: 以下是使用旧语法(对不支持的旧版Python有用)的方法:
本文向大家介绍Java 格式化输出JSON字符串的2种实现操作,包括了Java 格式化输出JSON字符串的2种实现操作的使用技巧和注意事项,需要的朋友参考一下 1 使用阿里的FastJson 1.1 项目的pom.xml依赖 1.2 Java示例代码 (1) 导入的包: (2) 测试代码: 其中JSON字符串为: {"_index":"book_shop","_type":"it_book","_
问题内容: 目前,我仅显示键,每个键都在新行中显示: 如何在新行中将它们显示为 key :: value ? 问题答案: 通过迭代器,将生成一个键,值元组: 更新为现代符号: