一、Char常用方法:
注意:以Is和To开头的为重要方法。Is开头的方法大多是判断Unicode字符是否为某个类别,
以To开头的方法主要是转换为其他Unicode字符。
示例代码:
//char c = '.';
//判断是否为大写
//Console.WriteLine(char.IsUpper(c));
//判断是否为小写
//Console.WriteLine(char.IsLower(c));
//判断是否为字母
//Console.WriteLine(char.IsLetter(c));
//判断是否为+-*/
//Console.WriteLine(char.IsSymbol(c));
//判断是否为空格
//Console.WriteLine(char.IsWhiteSpace(c));
//判断是否为控制类别(键盘上的:Home,End) 针对与操作系统的
//Console.WriteLine(char.IsControl(c));
//判断是否为标点符号
//Console.WriteLine(char.IsPunctuation(c));
char s ='a';
//把string类型转换为char类型
//string t = "a";
//Console.WriteLine(char.Parse(t));
//大写转小写
//Console.WriteLine(char.ToLower(s));
//char转换为string
Console.WriteLine(char.ToString(s));
//转为大写
Console.WriteLine(char.ToUpper(s));
Console.ReadKey();
2.转义字符:
C#采用字符”\”作为转义字符
二、String:
- 字符串的关键字为string。
它是String类的别名。string类型表示Unicode字符的字符串。
String类类似于string类型,但是功能更强。虽然String类功能很强,但是它也是不可改变的。
这就是说一旦创建String对象,就不能够修改。
表面看来能够修改字符串的所有方法,实际上不能够修改。它们实际上返回一个根据所调用的方法修改的新的String。
当需要大量的修改时,可使用StringBuilder类。
1.比较字符串
比较字符串并非比较字符串长度的大小,而是比较字符串在英文字典中的位置。
比较字符串按照字典排序的规则,判断;两个字符串的大小。
在英文字典中,前面的单词小于后面的单词。
//Compare方法用来比较两个字符串是否相等。注意用Compare 的结果是数字 等于一就相等
//比较字符串在英文字典中的位置
//string a = "a";
//string b = "b";
//Console.WriteLine(string.Compare(b, a));
//与Compare相同
////Console.WriteLine(a.CompareTo(b));
//Console.ReadKey();
//获取当前系统时间
//Console.WriteLine(DateTime.Now);
Format方法,用于将字符串数据格式化成指定的格式。(一般针对DateTime.Now进行格式化)
用法:
Console.WriteLine(string.Format("{0:f}",DateTime.Now));
Console.WriteLine(string.Format("{0:D}",DateTime.Now));
Console.WriteLine(string.Format("{0:d}",DateTime.Now));
Equals方法:主要用于比较两个字符串是否相等,如果相同返回值为 true,否则为false。
与java用法相同
1.截取字符串
SubString方法,该方法可以截取字符串中指定位置和指定长度的字符。
//截取字符串
//从下标0开始找,找到第一个后,截取前面的字符串
string str = "cc.vv";
Console.WriteLine(str.Substring(0,str.IndexOf('.')));
//截取出.cc
int a = str.IndexOf('.');
////3-(6-3)=0
Console.WriteLine(str.Substring(a,str.Length-a));
//截取出.cc
// string str = "vv.123.asd.....cc";
// int a = str.LastIndexOf(".");
//// Console.WriteLine(a);
// Console.WriteLine(str.Substring(a, str.Length - a));
Console.ReadKey();
2.分割字符串
Split方法,用于分割字符串。该方法的返回值是包含所有分割子字符串的数组对象,可以通过数组取得所有分割的子字符串。
string str = "vv.123.asd.....cc";
Console.WriteLine(str.Split('.').Length);
3.插入字符串
Insert方法,用于向字符串的任意位置插入新元素。
//Insert插入新的字符串:会产生一个新的string字符串
//在下标1的位置插入新的字符串
string str = "vv.123.asd.....cc";
String s=str.Insert(1, "你好");
Console.WriteLine(s);
Console.ReadKey();
4.填充字符串
PadLeft/PadRight 填充字符。
//从下标1开始填充指定字符 直到总长度为10为止
string str = "vv.1.cc";
Console.WriteLine(str.PadLeft(10,'c'));
//在总长度后 填充指定字符 直到总长度
//string str = ".";
//Console.WriteLine(str.PadRight(3,'c'));
Console.ReadKey();
5.删除字符串
Remove方法,用于从一个字符串指定位置开始,删除指定数量的字符。
//Remove 删除
//Remove(0):删除全部
//Remove(0,2):删除前2个字符串
string str = "sdfd";
Console.WriteLine(str.Remove(0,2));
Console.ReadKey();
6.复制字符串
Copy和CopyTo方法,用于将字符串复制到另外一个字符串或char类型的数组中。
//复制字符串 输出的是复制的字符串
string str = "sdfd";
Console.WriteLine(string.Copy(str));
Console.ReadKey();
7.替换字符串
Replace方法,用于将字符串中的某个字符或者字符串换成其他的字符或者字符串。
string str = "好好学习,天天向上";
string a = str.Replace("天天", "时时");
Console.WriteLine(a);
Console.ReadKey();
//7.控制台接收输入(类似“aa @bb”字符串),判断以“@”分割的前后两个字符串是否相等。
Console.WriteLine("请输(类似“aa@bb”字符串)");
Console.WriteLine("请输(类似“aa @bb”字符串)");
string str = Console.ReadLine();
string s = str.Replace(" ", string.Empty);//去除空格
int i = s.IndexOf("@");//找到@的下标
string a = s.Substring(0, 2);
string b = s.Substring(s.Length - i);
int e = string.Compare(b, a);//比较他们是否相等
if (e == 1)
{
Console.WriteLine("相等");
}
else
{
Console.WriteLine("不相等");
}
Console.ReadKey();
三、StringBuilder:
StringBuilder可变字符串类,存在于System.Text命名空间中,如果要创建StringBilder对象,首先必须引用此命名空间。
四、StringBuilder与String类的区别
String对象不可改变的,每次使用Stirng类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。
在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销会非常昂贵。
如果修改字符串而不创建新的对象,则可以使用StirngBuilder类。