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

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 String类具体解释

    Java String类具体解释 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,非常多时候,我们对它既熟悉又陌生. 类结构: public fin ...

  2. LINQ To XML的一些方法

    1.Elements() 返回XML文档或片段的所有第一级元素. 2.Descendants() 返回XML文档或片段中的所有子元素(所有级别的子元素). 3.Attributes() 返回当前选中元 ...

  3. Xshell同时向多个会话发送指令的方法

    我们平时使用XSHELL.SecureCRT.putty等ssh连接工具连接到远程主机,每次输入指令都是在单一会话窗口,如果有很多台会话,需要同时输入同样的指令,我们就不用一一输入,浪费时间和精力.可 ...

  4. NET基础课--NET中程序集0-1

    程序集 1.表现形式:.dll  和. exe . 2.程序集组成:PE头,CLR头,清单,元数据,CIL代码,资源文件.实际上这些内容包含在一个叫做Module的逻辑结构中. 单模块程序集:程序集就 ...

  5. java学习之部分笔记2

    1.变量 实例变量和局部变量 实例变量系统会自动初始化为0和null(string),局部变量必须设定初始值. 静态方法里只能引用静态变量 数据类型的自动转换! int—>long 2.构造方法 ...

  6. 【转】通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法

    错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是无法给远程连接的用 ...

  7. [转载]MATLAB中FFT的使用方法

    http://blog.163.com/fei_lai_feng/blog/static/9289962200971751114547/ 说明:以下资源来源于<数字信号处理的MATLAB实现&g ...

  8. CSS圆角样式

    CSS圆角: /*纯css,设置图片圆角*/ #top2 { margin-left:20px; padding:10px; width:600px; height:300px; border: 5p ...

  9. JavaWeb限流QPS简易框架

    Java Web利用filter实现拦截请求,统计信息.并控制单台机器QPS. /** * 网络流量控制器 */ public class TrafficFilter implements Filte ...

  10. PreparedStatement设置时间

    程序代码里面需要用PreparedStatement来设置时间过滤参数,时间参数中带有时分秒,用ps.setDate来设置的时候,会丢失时间部分,只有日期,用setTimestamp来设置参数,既有日 ...