03c#-字符串

2013年12月14日 07:21:27

===============================================================================================

20岁上下,你有什么?请用心去成长

===============================================================================================

字符串函数

  1.大小写

     ToLower():得到字符串的小写形式

     ToUpper():得到字符串的大写形式

  2.去两边的空白:Trim()

    *比如输入邮箱时,和用户名时经常用

  3. s1.Equals(s2, StringComparison.OrdinalIgnoreCase),两个字符串进行比区分大小写的比较。

    

1             bool b = "abc".Equal("Abc",StringComparison.OrdinalIgnoreCase);
2             Console.WriteLine(b);

  *比如登录用户名时常用这个,不区分大小写

  4.string[] Split(params char[] separator):将字符串按照指定的分割符分割为字符串数组;

  

1             string s = "abc,bca,bbb";
2             string[] strs = s.Split(',');
3             foreach (string item in strs)
4             {
5                 Console.WriteLine(item);
6             }

 

  string[] Split(char[] separator, StringSplitOptions options)将字符串按照指定的char分割符分割为字符串数组( options 取RemoveEmptyEntries的时候移除结果中的空白字符串);

  string[] Split(string[] sepatator, StringSplitOptions options)将字符串按照指定的string分隔符为字符串数组(options取RemoveEmptyEntries的时候移除结果中的空白字符串);

==============================================================================================

练习:例子1:从日期字符串("2008-08-08")中分析出年、月、日;2008年08月08日。
   例子2:从一个记录了学生成绩的文本文档,每个学生成绩是一行,每行是用|分割的数据,用|分割的域分别是姓名、年龄、成绩,写程序取出成绩最高学生的姓名和成绩。参考:使用string[] lines =System.IO.File.ReadAllLines(@"c:\root.ini", Encoding.Default);从文本文件读取数据,返回值为string数组,每个元素是一行。

  =============================================================================================

 

5.字符串替换:string Replace(string oldValue, string newValue)将字符串中的出现oldValue的地方替换为newValue。例子:名字替换。

  *论坛敏感词的替换等

6.取子字符串:string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串;

       string Substring(int startIndex, int length),取从位置startIndex开始长度为length的子字符串,如果子字符串的长度不足length则报错。

 7.其他字符串函数

    bool Contains(string value)判断字符串中是否含有子串value
      bool StartsWith(string value)判断字符串是否以子串value开始;
           bool EndsWith (string value)判断字符串是否以子串value结束;
      int IndexOf(string value):取子串value第一次出现的位置。

 

==============================================================================================

练习题:
课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。"abc"→"cba"

1             string s = "abc";
2             for (int i = s.Length - 1; i >= 0; i--)
3             {
4                 Console.Write(s[i]);
5             }

课上练习2:接收用户输入的一句英文,将其中的单词以反序输出。"hello c sharp"→"sharp c hello"

1             string str = "I am come";
2             string[] strs = str.Split(' ');
3             for (int i = strs.Length - 1; i >= 0; i--)
4             {
5                 Console.Write(strs[i]+" ");
6             }


课上练习3:从Email中提取出用户名和域名:abc@163.com。IndexOf找到@的位置。SubString。

1             string email = "woaini@163.com";
2             int index = email.IndexOf("@");
3             string userName = email.Substring(0,index);
4             string yuMing = email.Substring(index+1);
5             Console.WriteLine(userName);
6             Console.WriteLine(yuMing);

 

课上练习4:文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到控制台的时候最多标题长度20,如果超过20,则截取长度17的子串并且最后添加“...”,加一个竖线后输出作者的名字。

 1             string[] lines =System.IO.File.ReadAllLines(@"e:\2.txt", Encoding.Default);
 2 
 3             foreach (string item in lines)
 4             {
 5                 string[] strs = item.Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries);
 6                 string title = strs[0].Substring(0, Math.Min(17, strs[0].Length));
 7                 string author = strs[1];
 8 
 9                 if (title.Length == 17)
10                 {
11                     title = title + "...";
12                 }
13                 Console.WriteLine("{0}|{1}", title, author);
14 
15          }

 


练习5:自己动手写聊天机器人,能够回答不同城市的天气、回答感情问题、问的次数过多还会饿死,提问可以模糊提问(包含指定关键词)。问“天气:北京”就回复“北京的天气是晴”。

  

  

posted @ 2013-12-14 09:26  Hello-Word@km.Zhao  阅读(299)  评论(0)    收藏  举报