C#string类型总结_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C#string类型总结

C#string类型总结

 2015/5/6 3:31:30  狼人自传  程序员俱乐部  我要评论(0)
  • 摘要:个人笔记分享,知识点以及小练习字符串的特性:不可变性,每对字符串做拼接或者重新赋值之类的操作,都会在内存中产生一个新的实例。所以说,在.Net平台下,如果你对一个字符串进行大量的拼接赋值等操作,会产生大量的垃圾。---->我们可以将字符串看做是char类型的只读数组。--->当我们以索引的方式去访问某一个字符串的时候,获得是char类型空和null有什么区别,空在内存上开空间了,null没有字符串的常用函数1、ToCharArray():将一个字符串转换成一个char类型的数组。2
  • 标签:总结 C#

个人笔记分享,知识点以及小练习

字符串的特性:不可变性,每对字符串做拼接或者重新赋值之类的操作,都会在内存中产生一个新的实例。

 所以说,在.Net平台下,如果你对一个字符串进行大量的拼接赋值等操作,会产生大量的垃圾。    ---->我们可以将字符串看做是char类型的只读数组。   --->当我们以索引的方式去访问某一个字符串的时候,获得是char类型 空和null有什么区别,空在内存上开空间了,null没有 字符串的常用函数  1、ToCharArray():将一个字符串转换成一个char类型的数组。  2、new string(char[] chs):根据一个char类型的数组返回一个字符串。  3、ToUpper():返回字符串的大写形式.  4、ToLower():返回字符串的小写形式.  5、Equals(,stringcomprasion......):比较两个字符串是否相等,可以忽略大小写。  (lessonOne.Equals(lessonTwo,StringComparison.OrdinalIgnoreCase))class="Apple-converted-space">  Equal和Tostring都是object下的虚方法,都可以重写  6、Split():分割字符串,返回字符串类型的数组。 string[] nerstr=str.Split(new char[] { ' ', ',', '-' }, StringSplitOptions.RemoveEmptyEntries);  7、Contains():判断字符串中是否包含指定的字符串  8、Replace():将老字符串替换成新字符串  9、StartsWith():判断字符串是否以指定的字符串开始  10、EndsWith():判断字符串是否以指定的字符串结束  11、Trim():去掉字符串两端的字符。但是,不能去掉字符串中间的字符。  12、TrimStart():  13、TrimEnd():  14、Substring():截取指定的字符串,可以选择截取的长度。  15、IndexOf():取某一个字符在字符串中第一次出现的位置,如果没有,则返回-1。  16、LastIndexof():去某一个字符在字符串中最后一次出现的位置,如果没有,则返回-1。  17、静态函数   --->string.IsNullOrEmpyt()判断指定的字符串是否为空或者为null   --->string.Join():将指定的分隔符插入数组每个元素的后面,返回一个字符串,默认最后一个元素后面没有。 18:等号和Equals的区别 对于string类型而言,不管是等号还是Equals比较的都是值本身。             //Equals默认比较的是地址,但是我们在自己定义的类中如果用到Equals,都会将Equals进行重写,使之按照我们自己的需求进行比较 拼接字符串 //string str = string.Empty;             //StringBuilder sb = new StringBuilder();             ////00:00:00.1022297             //Stopwatch sp = new Stopwatch();

提供一组方法和属性,可用于准确地测量运行时间。

            //sp.Start();             //for (int i = 0; i < 100000; i++)             //{             //    //str += i;             //    sb.Append(i); //追加             //}             //sp.Stop();             //Console.WriteLine(sp.Elapsed);

获取当前实例测量得出的总运行时间。Elapsed

            //Console.WriteLine(sb.ToString());              StringBuilder sb = new StringBuilder();   举例: #region new string() ToCharArray()             //string str = "abcdef";             ////str[0] = 'b';               //////字符串--->char数组(可读可写)             ////char[] chs = str.ToCharArray();             ////chs[0] = 'b';             //////将改变后的char数组再次转换成字符串             ////str = new string(chs);               //Console.WriteLine(str[0]);             #endregion               #region Length属性             //Console.WriteLine("请输入你人生中最深刻老师的名字");             //string name = Console.ReadLine();             //Console.WriteLine("这个老师的名字有{0}个字",name.Length);             #endregion               #region ToUpper() ToLower() Equals()             //Console.WriteLine("请输入你喜欢的课程");             //string lessonOne = Console.ReadLine();             ////转换成大写             ////lessonOne = lessonOne.ToUpper();             ////转换成小写             ////lessonOne = lessonOne.ToLower();             //Console.WriteLine("请输入你喜欢的课程");             //string lessonTwo = Console.ReadLine();             ////lessonTwo = lessonTwo.ToUpper();             ////lessonTwo = lessonTwo.ToLower();             //if (lesssonsonOne.Equals(leTwo,StringComparison.OrdinalIgnoreCase))             //{             //    Console.WriteLine("你们喜欢的课程相同");             //}             //else             //{             //    Console.WriteLine("你们喜欢的课程不相同");             //}             #endregion               #region Split() 字符串的分割             ////string str = "abc   ,,,d, ,--,ef,,--  0987";             //////将一个字符串中没用的东西去掉             ////string[] strNew = str.Split(new char[] { ' ', ',', '-' }, StringSplitOptions.RemoveEmptyEntries);                 ////练习:从日期字符串("2008-08-08")中分析出年、月、日;2008年08月08日。             ////让用户输入一个日期格式如:2008-08-08,你输出你输入的日期为2008年1月2日               //string date = "2008-08-08";// "2008年08月08日";             //string[] newDate = date.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);               //date = newDate[0] + "年" + newDate[1] + "月" + newDate[2] + "日";             //Console.WriteLine(date);             //Console.ReadKey();             #endregion               #region Contains()判断是否包含  Replace()替换             //Console.WriteLine("请输入你的评论");             //string input = Console.ReadLine();             ////1、判断评论中是否包含敏感词             //if (input.Contains("老赵"))             //{             //    //2、进行替换             //    input = input.Replace("老赵", "***");             //}             //Console.WriteLine(input);             //Console.ReadKey();             #endregion             #region StartsWith() EndsWith()             //string str = "举头望明月,我叫郭德纲";             ////if (str.StartsWith("头"))             ////{             ////    Console.WriteLine("是的");             ////}             ////else             ////{             ////    Console.WriteLine("不是");             ////}             //Console.WriteLine(str.EndsWith("举头望明月,我叫郭德纲") ? "是的" : "不是");             #endregion             #region Trim() TrimEnd() TrimStart()             /*string str = "----  ---1   2---3-  --  ----";             ////str = str.Trim(); 去掉字符串两边的空格             ////str = str.TrimStart(); 去掉字符串前边的空格             ////str = str.TrimEnd();去掉后面的空格             str = str.Trim('-',' ');             //string[] strNew = str.Split(new char[] { '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);               Console.Write(str);                Console.ReadKey(); */             #endregion               #region Substring() 截取字符串             string str = "今天我要是上课睡觉了,我以后就单身一辈子";             str = str.Substring(12,2);             Console.WriteLine(str);             Console.ReadKey();             #endregion                 #region LastIndexof()找到某一个字符在字符串中最后一次出现的位置             //string path = @"c:\a\b\c\e\亚廷\d\f\苍老师苍老师.avi";               ////找到某一个字符在字符串中最后一次出现的位置             ////获得 \\在路径中最后一次出现的位置             //int index = path.LastIndexOf('\\');               //string fileName = path.Substring(index + 1);               //Console.WriteLine(fileName);             //Console.ReadKey();             #endregion               #region IndexOf()               /* string str = "举头望明头头月,我叫头郭头德纲";                  int index = str.IndexOf('a', 3);                  Console.WriteLine(index);                Console.ReadKey();*/             #endregion             //Console.WriteLine(string.IsNullOrEmpty(null) ? "yes" : "no");             /*  string[] names = { "张三", "李四", "王五", "赵六", "田七" };             //张三|李四|王五|赵六|田七             string str = string.Join("|", names);             Console.WriteLine(str);             Console.ReadKey();*/    //课上练习2:接收用户输入的一句英文,将其中的单词以反序输出。      “I love you"→“I evol uoy"             //string str = "Chinese food is best food";             ////获得要翻转的单词 按照空格分割             //string[] strNew = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);             //for (int i = 0; i < strNew.Length; i++)             //{             //    char[] chs = strNew[i].ToCharArray();             //    for (int j = 0; j < chs.Length / 2; j++)             //    {             //        char temp = chs[j];             //        chs[j] = chs[chs.Length - 1 - j];             //        chs[chs.Length - 1 - j] = temp;             //    }               //    strNew[i] = new string(chs);             //}             ////把空格安插到字符串数组中每个元素的后面             //str = string.Join(" ", strNew);             //Console.WriteLine(str);             //Console.ReadKey();   //课上练习4:把csv文件中的联系人姓名和电话显示出来。简单模拟csv文件,csv文件就是使用,分割数据的文本,输出:                 //string[] lines = File.ReadAllLines(@"C:\Users\SpringRain\Desktop\电话.txt", Encoding.Default);             //for (int i = 0; i < lines.Length; i++)             //{             //    //将双引号替换成""             //    lines[i] = lines[i].Replace("\"", "");             //    //将逗号和分号去掉             //    string[] linesNew = lines[i].Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries);             //    Console.WriteLine("姓名:" + linesNew[0] + linesNew[1] + " 电话:" + linesNew[2]);             //}  /* string str = "一日,天气炎热。两香蕉在路上散步,一香蕉抱怨道:“好热阿,好热阿。”遂脱衣。另一香蕉遂倒";             int index = str.IndexOf("香蕉");             Console.WriteLine("香蕉第一个出现的位置{0}",index);             int count=1;             while(index!=-1)             {                 count++;                 index = str.IndexOf("香蕉", index + 1);                 if(index==-1)                 {                     break;                 }                 Console.WriteLine("第{0}次出现的香蕉的位置是{1}",count,index);             }             Console.ReadKey();*/     等号和Equals的区别   Person p1 = new Person() { Name = "刘德华", Age = 18 };   Person p2 = new Person() { Name = "刘德华", Age = 18 }; //if (p1.Equals(p2)) //这是不相等的Equals默认比较的是地址,             //{             //    Console.WriteLine("相等");             //}             //else             //{             //    Console.WriteLine("不相等");             //}  class Person     {         public string Name { get; set; }         public int Age { get; set; }    } 如果让他们比较值那就:::重写  public override bool Equals(object obj)         {             Person person = obj as Person;             if (this.Name == person.Name && this.Age == person.Age)             {                 return true;             }             else             {                 return false;             }         } StringBuilder sb = new StringBuilder();             //sb.Append("123");             //sb.Append("张三"); Console.Writeline(sb);显示123张三     Person p1 = new Person() { Name = "刘德华", Age = 18 };   class Person     {         public string Name { get; set; }         public int Age { get; set; }      }  Console.WriteLine(p1.ToString());//这个对象所在的类的命名空间  

 

发表评论
用户名: 匿名