char 字符
char代表一个Unicode字符,它是System.Char的别名
cha<strong>本文来源gao@daima#com搞(%代@#码@网2</strong>r someChar = 'a';//定义了一个字符 char newLine= '\n';//这是一个换行符
System.Char定义了一组静态方法:
- ToUpper 将指定的字符转换为等效的大写形式
- ToLower 将指定的字符转换为等效的小写形式
- IsWhiteSpace 判断指定的字符是否为空白字符
- ……
例子:
Console.WriteLine(char.ToUpper('c'));//输出的是一个大写的C Console.WriteLine(char.ToLower('c'));//输出的是还是它自己 Console.WriteLine(char.ToUpper('C'));//输出的是还是它自己 Console.WriteLine(char.ToLower('C'));//输出的是一个小写的c Console.WriteLine(char.IsWhiteSpace('c'));//输出为False Console.WriteLine(char.IsWhiteSpace('\t'));//输出为True Console.WriteLine(char.IsWhiteSpace(' '));//输出为True
可以通过char或者System.Char来调用
例子:
Console.WriteLine(char.ToUpper('c'));//输出的是一个大写的C Console.WriteLine(System.Char.ToUpper('c'));//输出的是一个大写的C
现在这边会有一个问题,可能会引起一个bug,就是ToUpper,ToLower会遵循用户的地区设置,例如,char.ToUpper(‘i’) == ‘I’,这句话在土耳其地区设置里就会返回False。
解决办法就是使用culture-invariant版本的方法,总会应用英语的Culture
- ToUpperInvariant
- ToLowerInvariant
例子:
//使用固定区域性的大小写规则,不依赖于区域性的设置,以下这两种方式是等价的 Console.WriteLine(char.ToUpperInvariant('i'));//输出的是大写的I Console.WriteLine(char.ToUpper('i', CultureInfo.InvariantCulture));
char是16bit的,足够代表基本多语言平面的任何Unicode字符,如果超出这个范围,那么必须使用surrogate pairs。
string 字符串
- string是System.String的别名
- string是不可变的
- string是字符的序列
如何构建string
例子:
string s1 = "Hello"; string s2 = "First Line\r\nSecond Line"; string s3 = @\\server\fileshare\helloworld.cs;
创建重复字符的字符串
使用string的构造函数创建一个重复指定次数的字符的字符串。
例子:
Console.WriteLine(new string('*', 10));//输出的结果就是**********
可以从char数组构建字符串
例子:
char[] ca = "Hello".ToCharArray(); string s = new string(ca);
ToCharArray的作用正好相反,把字符串转成字符数组。
string的构造函数也被重载用来接收各种(不安全的)指针类型,目的是从像char*这样的类型创建字符串。
Null 和 空string
空string的长度是0,通过literal或string.Empty静态字段来创建
相等性比较的例子:
string empty = ""; Console.WriteLine(empty == ""); // True Console.WriteLine(empty == string.Empty); // True Console.WriteLine(empty.Length == 0); // True
string可以为null,因为是引用类型
string nullString = null; Console.WriteLine(nullString == null); // True Console.WriteLine(nullString == ""); // False Console.WriteLine(nullString.Length == 0); // NullReferenceException