1.为什么字符串类前要加sealed关键字? 答:1.子类如果继承字符串类以后可能会对字符串类进行修改可能会改变字符串特性。 2.CLR对字符串提供了各种特殊的操作方式,如果有很多类继承了字符串类,则CLR需要对更多的类型提供特殊操作,这样有可能会降低性能。
字符串格式化: string.Format("!{0,20:c2}",800) //代表,第0个数,空20个字符,C代表人民币符号,小数点后位数是2 输出为:!¥800.00 string.Format("!{0,-20:c2}",800) //-20代表左对齐 string.Format("!{0,20:c2}",800) //20代表右对齐
C表示货币 D代表十进制数 E代表科学计数法 G表示常规
string ss = "abc"; ss.Length; 求字符串长度 ss.ToCharArray; 将string转换char[] ss.ToLower(); 转换为小写 ss.ToUpper();转换为大写 ss.Equals(q1, q2);比较两个字符串是否相同 ss.IndexOf("d");查找一个字符串中d第一次出现的位置 ss.LastIndexOf("d");查找一个字符串中d最后一次出现的位置 ss.Substring(5,3);截取字符串,从字符串第5个索引开始,截取3个(如果不传范围,一直截取到最后) ss.Split();分割字符串 string.Join();静态方法 string.Format("");静态方法 ss.Replace();替换练习 123-4—442312-213--------32把重复符号"-"去掉获得123-4-442312-213-32
static void Main(string[] args) { string str = "123-4---442312-213--------32--32--2222"; split将所有'-'将1字符串分成N个 分离出字符串数组 123 4 442312 213 32 string[] parts=str.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries); join将'-'加入到字符串与字符串之间 str = string.Join("-", parts); Console.WriteLine(str); Console.ReadKey(); }练习,从文件路径中提取出文件名(包含后缀)。比如c:\a\b.txt中提取出b.txt这个文件名出来
static void Main(string[] args) { string path = @"c:\a\b.txt"; path = path.Substring(path.LastIndexOf('\\') + 1); 截取字符串path中的\的下一位,直到全部取完 global::System.Console.WriteLine(path); Console.ReadKey(); }练习 统计出某些特定字的出现次数
class Program { static void Main(string[] args) { string s= "圣诞节西瓜里看风景多西瓜了我有流西瓜哦豁问视剧西瓜西瓜拉风"; int count = 0; int index = 0; while ((index = s.IndexOf("西瓜", index)) != -1) { count++; index = index + "西瓜".Length; } Console.WriteLine(count); Console.ReadKey(); } }