作者horngsh (要公理要正义)
看板C_Sharp
标题[心得] C# String and Format
时间Sun Jun 3 15:59:45 2007
C#字串与字串的格式化
1. 字串是参考型态。
2. 字串在被建立後, 其字元顺序就不能被改变。如: "ABC"一旦建立,
不然再变更为"BAC"。
3. 可用StringBuffer Class来建立可以动态变更的字串(名称空间在
System.Text)。
4. 预设编码为ASCII, Encoding class位於System.Text名称空间。
5. 字串的Length属性传回字串长度。
6. 要比较字串大小时, 不能用>=或<=, 要改用Compare方法。
7. 用String.Compare(str1, str2)比较两个字串。
8. CultureInfo class位於System.Globalization名称空间中。
9. 用CompareOrdinal比较字串可忽略文化和地区和语言。
10. String.Concat(params string[] strs)将strs阵列中的每个字串
合并串接起来。
11.用String.IndexOf()方法可找字元或字串, 若回传-1则表示找不到。
12. 若要找一字元集合中的任一字元, 则用String.IndexOfAny or
String.LastIndexOfAny方法。
13. String.Split()分割字串成一阵列, String.Join()则是合并字串。
14. 有PadLeft() and PadRight()方法可用以填充字串的左边或右边的
多余空白。
15. 有Insert(int start, string str)可用来插入字串。
16. 有Remove(int start, int count)可用来移除count个字元。
17. 有Replace()用来取代字串。
18. 有ToUpper() and ToLower()方法转换大小写。
19. 有Substring()方法用来取出子字串。
20. 用String.Format()作字串的格式化, 包括了FormatSpefifier
and FormatProvider, 其中FormatProvider专门处理地区和
文化特点和语言的差异, 并定义了FormatSpecifier的诠释方式。
21. Format String包含两种项目: 标准表示式和格式化指令。
22. 格式化指令(如:{0, 26:Fmt} 其语法为{argNum, width:fmt},
其中fmt表示Format Specifier, 如果Width为正值则表示DATA
向右对齐, 如果为负值则DATA向左对齐, 如果是用{0:F2},
其中F表Fixed Point(有小数点), 2表示取代小数点後第二位,
如果用{0:N2}, 意义和{0:F2}相同但多了三位一撇表示法。
23. Format Specifier如下:
C or c ==>Currency
D or d ==>Decimal
E or e ==>Exponential
F or f ==>Fixed Point
G or g ==>同E和F, 但是是取E和F中较短者
N or n ==>Fixed Point with comma
P or p ==> Percent Notation
R or r ==>使用Parse方法(RoundTrip格式)
X or x ==>16进位表示
24. 自订格式化字串(Picture Format), 其中位标(PlaceHolder)如下:
. (句点) 指示小数点位置
# 表一位阿拉伯数字(但数字为0时不显示)
0 表一位阿拉伯数字(但数字为0时显示)
如:{0:#,###.#} 配合3421.3会输出3,421.3
(只要有一个逗号就会自动3位一撇), 如果逗号在最右侧或刚好
在小数点左侧, 则会将数值除以1000再输出(即以千为单位)
; (分号)能够让你为正数、负数或0指定不同的格式, 如:
positive-fmt;negative-fmt;zero-fmt
25. DateTime Format 其中大M表月份, 小m表分钟, 大H表24小时制,
M or MM or MMM or MMMM通通用来表示月份, tt 表示上午/下午
26. 列举Format, 其中 [Flags] enum {...} 表位元栏位的列举型态,
其中{0:D}会将列举以数值表现,{0:X}亦是(16进位), 但{0:G} or
{0:F}会以名称表示, 其中G只能用在位元栏位的列举
--
=============================
夏有凉风
冬有雪
http://itsoho.myweb.hinet.net
=============================
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.181.10
1F:推 huge:感谢 06/03 16:13
2F:推 tPttPttPt:推 06/04 00:06
3F:推 cole945:4. string不是一律用utf-16编码吗 @.@? 06/04 00:48
4F:推 tomex:我也记得是utf-16编码喔! 06/04 01:32
5F:推 horngsh:感谢指正.^^ 06/04 07:14
6F:推 gardenest:感恩~~推 06/04 22:07