C#核编之格式化编程
一、格式化控制台输入输出
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#核编之格式化编程的更多相关文章
- Log4J:Log4J三大组件:Logger+Appender+Layout 格式化编程详解
快速了解Log4J Log4J的三个组件: Logger:日志记录器,负责收集处理日志记录 (如何处理日志) Appender:日志输出目的地,负责日志的输出 (输出到什么 地方) Layo ...
- 网络编程之UDP编程
网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了Data ...
- 网络编程之TCP编程
网络编程之TCP编程 前面已经介绍过关于TCP协议的东西,这里不做赘述.Java对于基于TCP协议的网络通信提供了良好的封装,Java使用socket对象来代表两端的通信窗口,并通过Socket产生I ...
- linux网络编程之socket编程(九)
转眼又快到十一月份了,北京已经是完全进入冬天的节奏,外面冷风嗖嗖的,不过在夜深人静之时,学习永远成了我最快乐的时光,只有此时会觉得自己是如此踏实,虽说白天工作也是编一天程,但是此时的编程,是一种业余爱 ...
- C#网络程序设计(3)网络传输编程之TCP编程
网络传输编程指基于各种网络协议进行编程,包括TCP编程,UDP编程,P2P编程.本节介绍TCP编程. (1)TCP简介: TCP是TCP/IP体系中最重要的传输层协议,它提供全双工和可 ...
- python入门编程之mysql编程
python关于mysql方面的连接编程 前提:引入mysql模块MySQLdb,即:MySQL_python-1.2.5-cp27-none-win_amd64.whl 如果要用线程池,则要引用模块 ...
- Python网络编程之socket编程
什么是Socket? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 ...
- [Python] 网络编程之TCP编程
转自:TCP编程 - 廖雪峰的官方网站 Socket是网络编程的一个抽象概念.通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协 ...
- python编程之socket编程基础
python socket编程,首先需要import socket模块 首先创建一个socket对象 expl = socket.socket(socket.AF_INET,socket.SOCK ...
随机推荐
- Swift观察者模式
用swift写一个观察者模式,集合了swift语言中类,数组,协议,方法,字符串,条件控制语句等一些语法.简单介绍下观察者模式,在观察者模式中,会改变的是主题的状态以及观察者的数目.用这个模式,可以改 ...
- Linux Tomcat7.0安装配置实践总结
一,安装JDk 先下载jdk,链接http://www.oracle.com/technetwork/java/javase/downloads/index.html,选择相对应平台的JDK.由于笔者 ...
- CDZSC_2015寒假新人(1)——基础 e
Description Julius Caesar lived in a time of danger and intrigue. The hardest situation Caesar ever ...
- JavaMail发送简单邮件
非常简单的发送邮件实现,网上有很多啦,但还是自己写写记录下吧. package cn.jmail.test; import java.util.Properties; import javax.mai ...
- Centos7安装JDK
以下是gz包方式: 1,将jdk-8u51-linux-x64.tar.gz放到/usr/java目录下 2,用tar -zxvf jdk-8u51-linux-x64.tar.gz 解压到当前目录 ...
- Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法
本文为转载内容,感谢原作者.原文出自:http://zhaoxiaoru39.blog.163.com/blog/static/609552192012511104730115/ 我遇到的问题是:在n ...
- java.util.logging.Logger基础教程
从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一直未能广泛使用.综合网上各类说法,大致认为: (1)Logger:适用于小型系统,当日 ...
- Window10安装TestLink,以及登录mysql数据库的错误处理
步骤一: 需要安装apache和mysql,但是我们这里仅仅是使用testlink,不关注其他,所以使用Vertrigoserv进行傻瓜式安装,安装完后,下载testlink解压,将解压后的文件放入D ...
- IEnumerable
C#基础之IEnumerable 1.IEnumerable的作用 在使用Linq查询数据时经常以IEnumerable<T>来作为数据查询返回对象,在使用foreach进行遍历时需要该对 ...
- 做为一个Java程序员,你需要哪些傍身的技能?
最近总有些断断续续的思考,想想从我入行以来,我到底学会了什么,做成过什么,以后要做什么,如何提升自己······· 工作3年了,常听人说3年,5年,10年是程序员的坎,每过一个都会有新的想法,新的改变 ...