一、格式化控制台输入输出

1、 在前面的随笔中,会经常看到诸如{0},{1}之类的标记嵌入在字符串变量中。.NET引入一种字符串格式化的新风格。与C的printf()相似,简而言之,如果需要定义一个字符串字面量,其中包含一些运行时才能知道其值的数值片段,可以使用花括号语法在文本内部指定占位符,在运行时,值会传递到Console.WriteLine()来代替每一个占位符。

注:如果唯一编号的占位符的数量比后面填充的参数数量多,则会抱一个格式异常,如果比填充的参数少,没有使用的参数就会被忽略!

代码如下:

Console.WriteLine("this is {0},that is {1}","apple","banana");

2、在一个字符串中可以重复给定一个占位符(占位符可以是一样的),如果说你是一个甲壳虫乐队的爱好者,想建立一个字符串"9,number 9,number 9"。代码如下:

Console.WriteLine("{0},Number {0},Number {0}","");

如上代码所示,占位符是可以重复的,当然也不需要按照递增的次序,如下代码就可以说明:

Console.WriteLine("{1},{0},{2}",,,);//输出:20,10,30

二、格式化数值数据

1、在控制台应用程序中用Console.WriteLine()方法来格式化数据

            StringBuilder str = new StringBuilder();
str.AppendFormat("中国的货币符号是{0:c}", );//输出:¥999.00 将目标数值转换成以当地货币形式的数值
str.AppendFormat("格式化十进制数,用于指定填充值的最小个数{0:d9}",);// 输出:000000999 {0:d9}--->0代表参数的顺序,d9代表将10进制数的位数设置成9位,不够用0补
str.AppendFormat("小数点格式化,也用于填充指定值的小数个数{0:f3}", 999.9994);//输出:999.000 {0:f3}--->0代表参数的顺序,f3代表将999的小数位数设置成3位,没有小数的话用0补,多于3位的话,删除多余的位数
str.AppendFormat("将普通数字转换成指数{0:e}", );//输出:9.990000e+002 {0:e}--->0代表参数的顺序,e代表将该数字转换成指数形式
str.AppendFormat("将普通数字转换成指数{0:n}", );//输出:66,666,666.00 用于基本的数值格式化(带逗号)
str.AppendFormat("将普通数字转换成指数{0:x}", );//输出:3f940aa 将目标数值16进制化
Console.WriteLine(str);

2、在控制台应用程序之外格式化数值数据

.NET字符串格式化字符不局限与在控制台应用程序中使用,同样的格式化语法可以在调用string.format()使用,如果我们需要对任何应用程序类型(例如桌面GUI程序、ASP.NET WEB应用程序)在运行时组合文本数据,这个方法就很有用。

string.format()返回一个新的字符串对象,修改用户提供的字符串对象和该对象提供的标志进行格式化。代码如下:

string userMessage=string.Format("100000 in hex is  {0:x}",);
Console.WriteLine(userMessage);//输出:100000 in hex is 186a0

C#核编之格式化编程的更多相关文章

  1. Log4J:Log4J三大组件:Logger+Appender+Layout 格式化编程详解

    快速了解Log4J Log4J的三个组件: Logger:日志记录器,负责收集处理日志记录     (如何处理日志) Appender:日志输出目的地,负责日志的输出  (输出到什么 地方) Layo ...

  2. 网络编程之UDP编程

    网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了Data ...

  3. 网络编程之TCP编程

    网络编程之TCP编程 前面已经介绍过关于TCP协议的东西,这里不做赘述.Java对于基于TCP协议的网络通信提供了良好的封装,Java使用socket对象来代表两端的通信窗口,并通过Socket产生I ...

  4. linux网络编程之socket编程(九)

    转眼又快到十一月份了,北京已经是完全进入冬天的节奏,外面冷风嗖嗖的,不过在夜深人静之时,学习永远成了我最快乐的时光,只有此时会觉得自己是如此踏实,虽说白天工作也是编一天程,但是此时的编程,是一种业余爱 ...

  5. C#网络程序设计(3)网络传输编程之TCP编程

        网络传输编程指基于各种网络协议进行编程,包括TCP编程,UDP编程,P2P编程.本节介绍TCP编程.     (1)TCP简介: TCP是TCP/IP体系中最重要的传输层协议,它提供全双工和可 ...

  6. python入门编程之mysql编程

    python关于mysql方面的连接编程 前提:引入mysql模块MySQLdb,即:MySQL_python-1.2.5-cp27-none-win_amd64.whl 如果要用线程池,则要引用模块 ...

  7. Python网络编程之socket编程

    什么是Socket? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 ...

  8. [Python] 网络编程之TCP编程

    转自:TCP编程 - 廖雪峰的官方网站 Socket是网络编程的一个抽象概念.通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协 ...

  9. python编程之socket编程基础

    python socket编程,首先需要import   socket模块 首先创建一个socket对象 expl = socket.socket(socket.AF_INET,socket.SOCK ...

随机推荐

  1. JAVA HashMap与HashTable 区别

    HashTable和HashMap区别 第一,继承不同. public class Hashtable extends Dictionary implements Mappublic class Ha ...

  2. 开始我的.NET的学习旅程

    今天开始了我的.NET学习之旅,终于弄懂了.NET与C#的关系,一开始还以为它们就是一个东西,原来不是那样的,C#只是基于.NET平台环境下运行的一种语言,.NET不止可以运行C#语言,更可以运行其他 ...

  3. 《JavaScript 闯关记》之语法

    JavaScript 的语法大量借鉴了 C 及其他类 C 语言(如 Java 和 Perl)的语法.因此,熟悉这些语言的开发人员在接受 JavaScript 更加宽松的语法时,一定会有种轻松自在的感觉 ...

  4. OSError: [Errno 13] Permission denied: '/etc/cron.d/1sandbox_registration'

    使用Hortonworks 的twitter tutorial: http://hortonworks.com/hadoop-tutorial/how-to-refine-and-visualize- ...

  5. android第一天错误

    1.自己写的activity并在AndroidManifest.xml中注册 在模拟机上运行时出现 No Launcher activity found! The launch will only s ...

  6. Jq超链接提示

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Intersection of Two Linked Lists(java)

    eg: a1 → a2 ↘ c1 → c2 → c3 或者直接a1 → b1 ↗ b1 → b2 → b3求公共链表c1. 常规的指针分裂法,复制法,偏移法. public class Solutio ...

  8. android的数据存储方式

    数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 ...

  9. python3.4下遍历文件目录,不需要再特殊处理中文编码

    python3.4下遍历文件目录,不需要再特殊处理中文编码 直接使用os.walk来遍历中文目录. os.walk方法返回的是一个三元 tupple(dirpath, dirnames, filena ...

  10. oracle全文检索笔记

    1.删除词法解析器 exec ctx_ddl.drop_preference('my_lexer'); 2.创建中文词法解析器 exec ctx_ddl.create_preference ('my_ ...