C# 之 string字符串
来源:互联网 发布:程序员公众号 编辑:程序博客网 时间:2024/06/05 11:06
前提:字符串变量 mystr=" I am a string ! ... ";
1.判断字符串是否为null 或 空白符:
string.IsNullOrWhiteSpace(mystr) (true|false)
判断字符串是否为null 或 空:string.IsNullOrEmpty(mystr) (true|false)
2.C#去除字符串中的空格\s、回车\n、换行符\r\n、制表符\t(正则表达式法)
格式:newName = Regex.Replace(newName,pattern, txtReplaceNew, RegexOptions.IgnoreCase);
//content_needNoindent为要检查的字符串,pattern为要替换的特殊字符 string pattern = @"\s|\t|\r|\n"; string newstr = Regex.Replace(content_needNoindent, pattern, "");
3. 转义字符"\"
字符串中可以包含转义符,如“\n”(新行)和“\t”(制表符)。 如果希望包含反斜杠,则它前面必须还有另一个反斜杠,如“\\”。
4. “@”符号
@符号会告知字符串构造函数忽略转义符和分行符。
因此,以下两个字符串是完全相同的:
stringp1 = "\\\\MyDocuments\\MyFiles\\"; stringp2 = @"\\MyDocuments\MyFiles\";5. 字符类型转字符串
12345.ToString("n"); //生成 12,345.00 12345.ToString("C"); //生成 ¥12,345.00 12345.ToString("e"); //生成 1.234500e+004 12345.ToString("f4"); //生成 12345.0000 12345.ToString("x"); //生成 3039 (16进制) 12345.ToString("p"); //生成 1,234,500.00%
另外,可以通过参数格式化ToString()的显示输出。如,对于时间类型格式,可以通过ToString()方法自定义时间显示格式。如:System.DateTime.Now.ToString("yyyy-MM-ddHH:mm:ss.fff"); //outputs"2009-03-1118:05:16.345" //"MM":指定月份为2位字符串,不足2位则前方补"0";"M":为月份数值转换的字符串;//"HH":表示24小时制的小时;"hh"表示12小时制的小时;
格式化数值结果表
6. SubString()
格式:Substring(intstartindex,intlen)
用于获取源字符串指定起始位置startindex,指定长度len的字符串。
参数Startindex索引从0开始,且最大值必须小于源字符串的长度,否则会编译异常;
参数len的值必须不大于源字符串索引指定位置开始,之后的字符串字符总长度,否则会出现异常;
strings4 = "Visual C# Express"; System.Console.WriteLine(s4.Substring(7,2)); //outputs"C#" System.Console.WriteLine(s4.Replace("C#","Basic")); //outputs"VisualBasicExpress"7. Replace()
格式:Replace(stringoldValue,stringnewValue)
用于C#字符串中特定字符串组合的替换,即将源字符串中的所有oldValue字符串替换为newValue字符串。
strings5 = "Visual C# Express"; System.Console.WriteLine(s5.Replace("C#","VB"));//outputs"VisualVBExpress"8. Split()
将字符串拆分为子字符串(如将句子拆分为各个单词)是一个常见的编程任务。Split()方法使用分隔符(如空格字符)char数组,并返回一个子字符串数组。您可以使用foreach访问此数组。
char[] delimit = new char[]{''}; //字符数组指示哪些字符被用作分隔符 string s14 = "The cat sat on the mat."; foreach(string substr in s14.Split(delimit)) { System.Console.WriteLine(substr); }此代码将在单独的行上输出每个单词,如下所示:
The
cat
sat
on
the
mat.
下面的代码示例演示如何使用System.String.Split方法分析字符串。此方法返回一个字符串数组,其中每个元素是一个单词。作为输入,Split采用一个字符数组指示哪些字符被用作分隔符。本示例中使用了空格、逗号、句点、冒号和制表符。一个含有这些分隔符的数组被传递给Split,并使用结果字符串数组分别显示句子中的每个单词。
示例:
Class TestStringSplit { Static void Main() { char[] delimiterChars = {' ',',','.',':','\t'}; string text= "one\ttwothree:four,fivesixseven"; System.Console.WriteLine( "Originaltext:'{0}'", text); string[] words=text.Split(delimiterChars); System.Console.WriteLine("{0}wordsintext:",words.Length); foreach(string s in words) { System.Console.WriteLine(s); } } }另外,还可通过正则表达式Regex.Split()的方法,通过C#字符串分隔字符串。
示例:
Using System.Text.RegularExpressions;<span style="color:#cc0000;">//需要引用正则表达式的命名空间</span>string str = "aaajsbbbjsccc"; string[]sArray = Regex.Split(str,"js",RegexOptions.IgnoreCase);//正则表达式//RegexOptions.IgnoreCase表示忽略字母大小写foreach(string I in sArray) Response.Write(i.ToString()+"");9. Trim()
Trim()从当前String对象移除所有前导空白字符和尾部空白字符。
10. ToCharArray()
格式:ToCharArray(intstartindex,intlen)
用于将字符复制到字符数组
string s8 = "Hello,World"; char[]arr = s8.ToCharArray(0,s8.Length); foreach(char c in arr) { System.Console.Write(c);//outputs"Hello,World" }修改字符串内容
字符串是不可变的,因此不能修改字符串的内容。但是,可以将字符串的内容提取到非不可变的窗体中,并对其进行修改,以形成新的字符串实例。
下面的示例使用ToCharArray方法来将字符串的内容提取到char类型的数组中。然后修改此数组中的某些元素。之后,使用char数组创建新的字符串实例。
classModifyStrings { Static void Main() { String str = "Thequickbrownfoxjumpedoverthefence"; System.Console.WriteLine(str); Char []chars = str.ToCharArray(); int animalIndex = str.IndexOf("fox"); if(animalIndex!=-1) { chars[animalIndex++]='c'; chars[animalIndex++]='a'; chars[animalIndex]='t'; } stringstr2 = newstring(chars); System.Console.WriteLine(str2); } }输出:
Thequickbrownfoxjumpedoverthefence
Thequickbrowncatjumpedoverthefence
11.索引访问字符串中的各个字符str[index]
格式:mystr[intindex]
逆序排列字符串
string s9 = "Printingbackwards"; for(int i=0; i< s9. Length; i++){ System.Console.Write(s9[s9.Length-i-1]);//outputs"sdrawkcabgnitnirP"}12. 更改大小写,ToUpper()和ToLower()
若要将字符串中的字母更改为大写或小写,可以使用ToUpper()或ToLower()。如下所示:
13. 忽略大小写
str.EndsWith(name,StringComparison.CurrentCultureIgnoreCase);String.Equals(str1,str2,StringComparison.CurrentCultureIgnoreCase);14. 比较
比较两个字符串的最简单方法是使用==和!=运算符(字符串这两个方法已经重载了,还有+号),执行区分大小写的比较。
string color1="red"; string color2="green"; string color3="red"; if(color1==color3) { System.Console.WriteLine("Equal"); } if(color1!=color2) { System.Console.WriteLine("Notequal"); }15. CompareTo()
字符串对象也有一个CompareTo()方法,它根据某个字符串是否小于(<)或大于(>)另一个,返回一个整数值。比较字符串时使用Unicode值,小写的值小于大写的值。
string s121="ABC"; string s122="abc"; if(s121.CompareTo(s122)>0) { System.Console.WriteLine("Greater-than"); } else{ System.Console.WriteLine("Less-than"); }
16. IndexOf()字符串索引(包含某个字符串)若要在一个字符串中搜索另一个字符串,可以使用IndexOf()。如果未找到搜索字符串,IndexOf()返回-1;否则,返回它出现的第一个位置的索引(从零开始)。
string s13="BattleofHastings,1066"; System.Console.WriteLine(s13.IndexOf("Hastings"));//outputs10 System.Console.WriteLine(s13.IndexOf("1967"));//outputs-1
string类型(它是System.String类的别名)为搜索字符串的内容提供了许多有用的方法。下面的示例使用IndexOf、LastIndexOf、StartsWith和EndsWith方法。
17. 使用StringBuilder
StringBuilder类创建了一个字符串缓冲区,用于在程序执行大量字符串操作时提供更好的性能。StringBuilder字符串还允许您重新分配个别字符,这些字符是内置字符串数据类型所不支持的。例如,此代码在不创建新字符串的情况下更改了一个字符串的内容:
System.Text.StringBuilder sb = newSystem.Text.StringBuilder("Rat:theidealpet"); sb[0] ='C'; System.Console.WriteLine(sb.ToString());//displays Cat:theidealpet System.Console.ReadLine();在以下示例中,StringBuilder对象用于从一组数值类型中创建字符串。
Class TestStringBuilder { Static void Main() { System.Text.StringBuilder sb=newSystem.Text.StringBuilder(); //Createastringcomposedofnumbers0-9 for(inti=0;i<10;i++) { sb.Append(i.ToString()); } System.Console.WriteLine(sb);//displays0123456789 //Copyonecharacterofthestring(notpossiblewithaSystem.String) sb[0] = sb[9]; System.Console.WriteLine(sb);//displays9123456789 } }
- C# 之 string字符串
- C#基础 之 string字符串格式化
- C#之 String.Format对字符串格式化
- c#之string的格式化字符串format
- C#操作字符串string
- c# String字符串相关
- C# 字符串(String)
- C#梳理【字符串String】
- C#字符串(String)
- 每日一码之C#字符串string操作
- C# 格式化字符串 String.Format
- C# 格式化字符串 String.Format
- C# 格式化字符串 String.Format
- C# 格式化字符串 String.Format
- C# String.Format() 格式化字符串
- C# 格式化字符串 String.Format
- C# 格式化字符串 String.Format
- C# md5加密字符串string
- linux常用命令
- 锁屏效果
- 高阶函数 Higher-order function
- [UVA400]Unix ls[格式输出]
- Java NIO原理图文分析及代码实现
- C# 之 string字符串
- Divisibility by Eight
- POJ 2752 Seek the Name, Seek the Fame(KMP)
- Unity退出后保存数据,PlayerPrefs 玩家偏好
- 第五天 类和对象
- B 类 对象 继承 多态与动态绑定
- Palindromes
- Android50道面试题
- 使用K-NN算法解析验证码