首页 > 代码库 > 字符串2014年6月7日17:29:44

字符串2014年6月7日17:29:44

---恢复内容开始---

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

1             string s = "abc1234";
2             s = s.Replace("a", "A");//第一个参数是旧的,第二个是新的
3             Console.WriteLine(s);

 

 

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

1             string s = "abcdef12";
2             //string s1 = s.Substring(2);//从位置2开始一直到最后的子字符串"cdef12"
3             string s1 = s.Substring(2, 3);//第二个参数是长度,不是结束位置"cde"
4             Console.WriteLine(s1);

 

 

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

案例:截取字符串前5个,string s2 = s1.Substring(0, Math.Min(s1.Length, 5));//取字符串的长度和5中的最小值来截取。谁小娶谁。

1             string s = "abc12f";
2             //string s1 = s.Substring(2, s.Length - 2>5?5:s.Length - 2);
3             //Math.Min返回两个参数中的最小值
4             string s1 = s.Substring(2, Math.Min(s.Length - 2,5));
5             Console.WriteLine(s1);

 

bool Contains(string value)判断字符串中是否含有子串value;

1             string s = "伟大的共党召开大会";
2             if (s.Contains("共党"))//判断字符串中是否含有子字符串
3             {
4                 Console.WriteLine("禁止发表");
5             }
6             else
7             {
8                 Console.WriteLine("可以发表");
9             }

 

bool EndsWith (string value)判断字符串是否以子串value结束

bool StartsWith(string value)判断字符串是否以子串value开始

1             string s = "ATM我是你们的忠实听众";
2             if (s.StartsWith("ATM"))//是否以某个字符串开头
3             {
4                 Console.WriteLine("短信正确");
5             }
6             else
7             {
8                 Console.WriteLine("短信错误");
9             }

 

int IndexOf(string value):取子串value第一次出现的位置。

1             string s = "我北爱北京敏感词";
2             //int i = s.IndexOf("北京");
3             int i = s.IndexOf("南京");
4             //子字符串在字符串中第一次出现的位置(以第一个字符为序号)
5             //如果不存在则返回-1
6             Console.WriteLine(i);

 

例子1.接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。"abc"→"cba"

1             string s = Console.ReadLine();
2             for (int i = s.Length - 1; i >= 0; i--)//从最后一个开始倒着循环
3             {
4                 char ch = s[i];
5                 Console.WriteLine(ch);
6             }

 

例子2.接收用户输入的一句英文,将其中的单词以反序输出。"hello c sharp"→"sharp c hello"

1             string s = Console.ReadLine();
2             //以空格分割,并去除结果中的空白字符串(第二个参数功能)
3             string[] strs = s.Split(new char[] {   },StringSplitOptions.RemoveEmptyEntries);
4             //倒序输出
5             for (int i = strs.Length - 1; i >= 0; i--)
6             {
7                 string str = strs[i];
8                 Console.WriteLine(str);
9             }

例子3.从Email中提取出用户名和域名:abc@163.com。IndexOf找到@的位置。SubString。要考虑Email地址错误的情况(必须含有@,并且@不能在最开始、最后出现),如果错误告诉用户。

 1             //从Email中提取出用户名和域名:abc@163.com。
 2             //IndexOf找到@的位置。SubString。
 3             //要考虑Email地址错误的情况(必须含有@,并且@不能在最开始、最后出现),如果错误告诉用户。
 4 
 5             string email = "abc@163.com";
 6             if (!email.Contains("@") || email.StartsWith("@") || email.EndsWith("@"))
 7             {
 8                 Console.WriteLine("Email地址不正确");
 9                 return;
10             }
11             int atIndex = email.IndexOf("@");
12             string username = email.Substring(0, atIndex);
13             string domain = email.Substring(atIndex + 1);
14             Console.WriteLine("用户名:{0},域名:{1}", username, domain);

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

 

---恢复内容结束---