C#入门系列课程之六--字符与字符串
时间:2010-10-23 来源:徐禀欣
1、char在C#中表示一个Unicode字符 ,char只定义一个字符. char ch=“l”;
2、char类的常用方法.
char方法 | 说明 |
IsControl | 指示指定的Unicode字符是否属于控制字符类别 |
IsDigit | 指示某个Unicode字符是否属于十进制数字类别 |
IsHighSurrogate | 指示指定的Char对象是否为高代理项 |
IsLetter | 指示某个Unicode字符是否属于字母类别 |
IsLetterOrDigit | 指示某个Unicode字符是否属于字母还是数字类别 |
IsLower | 判断某个Unicode字符是否是小写字母 |
IsLowSurrogate | 判断指定的Char对象是否为低代理项 |
IsNumber | 判断某个Unicode字符是否属于数字类别 |
IsPunctuation | 判断某个Unicode字符是否属于标点符号类别 |
IsSeparator | 判断某个Unicode字符是否属于分隔符类别 |
IsSurrogate | 判断某个Unicode字符是否属于代理项字符类别 |
IsSurrogatePair | 判断两个指定Char对象是否形成代理项对 |
IsSymbol | 判断某个Unicode字符是否属于符号字符类别 |
IsUpper | 判断某个Unicode字符是否属于大写字母类别 |
IsWhiteSpace | 判断某个Unicode字符是否属于空白类别 |
Parse | 将指定的字符值转换为它的等效Unicode字符 |
ToLower | 将Unicode字符的值转换为它的小写等效项 |
ToLowerInvariant | 使用固定区域性的大小写规则,将Unicode字符的值转换为其小写等效项 |
ToString | 转换为等效的字符串表示 |
ToUpper | 将Unicode字符的值转换为它的大写等效项 |
ToUpperInvariant | 使用固定区域性的大小写规则,将Unicode字符的值转换为其大写等效项 |
TryParse | 将指定字符串的值转换为它的等效Unicode字符串 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { char ch1='a'; char ch2 = 'B'; Console.WriteLine("IsLetter判断ch1是否为字母:{0}",Char.IsLetter(ch1)); Console.WriteLine("IsUpper判断ch2是否为大写字母{0}",Char.IsUpper(ch2)); Console.WriteLine("ToUpper将ch1转换为大写字母{0}",Char.ToUpper(ch1)); Console.ReadLine(); } } }
3、转义字符:C# 采用字符”\”作为转义字符
转义符 | 说明 |
\n | 回车换行 |
\t | 横向跳到下一制表位置 |
\v | 竖向跳格 |
\b | 退格 |
\r | 回车 |
\f | 换页 |
\\ | 反斜线符 |
\’ | 单引号符 |
\ddd | 1-3位八进制数所代表的字符 |
\xhh | 1-2位十六进制所代表的字符 |
二、字符串类String
1、.NET Framework中表示字符串的关键字为string,它是String类的别名。string类型表示Unicode字符的字符串
2、字符串是Unicode字符的有序集合,用于表示文本。String对象是System.Char对象的有序集合,用于表示字符串。String对象的值 是该有序集合的内容,并且该值是不可变的,根据字符在字符串中的不同位置,字符在字符串中有一个索引值,可以通过索引值获取字符串中的某个字符。字符在字符串中的索引从0开始。具体看下面的示例:
static void Main(string[] args) { string str = "字符与字符串"; Console.WriteLine("字符串str中第一个字符是:{0}",str[0]);//输出字符串中的第一个字符--字 Console.WriteLine("字符串str中第二个字符是:{0}", str[1]);//输出字符串中的第二个字符--符 Console.Read(); }
3、比较字符串
(1)compare方法 用来比较两个字符串是否相等,它有很多个重载方法。
Int compare(string str1,string str2)
Int compare(string str1,string str2,bool ignorCase )
Str1,str2是两个比较的字符串,ignorcase是一个布尔型的参数,如果参数的值的是true,那么比较字符串时就忽略大小写的差别。如果str1>str2的话,返回1;str1=str2返回0;str1<str2返回-1。
static void Main(string[] args) { string strA = "字符与字符串"; string strB = "比较字符串的大小"; Console.WriteLine(String.Compare(strA,strB));//如果strA>strB则返回1; Console.WriteLine(String.Compare(strA,strA));//如果两个字符串相同则返回0; Console.WriteLine(String.Compare(strB, strA));//如果strA<strB则返回-1 Console.Read(); }
(2)compareto方法的含义与compare一样,不过用法不一样。str1.CompareTo(str2)如果str1>str2返回1;相同返回0;小于返回-1
(3)Equals方法:用于两个字符串是否相同, 如果相同返回值是true,否则为false
public bool Equals(string value)
public static bool Equals(string str1 ,string str2)
static void Main(string[] args) { string strA = "字符与字符串"; string strB = "比较字符串的大小"; Console.WriteLine(String.Equals(strA,strB));//如果strA=strB则返回true Console.WriteLine(strA.Equals(strA));//如果strA=strA则返回true Console.Read(); }
4、格式化字符串
在c#中,String类提供了一个静态的Format方法,用于将字符串数据格式化成指定的格式,
语法: public static string Format(string format,object obj)
format:用来指定字符串所要格式化的形式
obj:要被格式化的对象
格式规范 | 说明 |
d | 简短日期格式(YYYY-MM-dd) |
D | 完整日期格式(YYYY年MM月dd天) |
t | 简单时间格式(hh:mm) |
T | 完整时间格式(hh:mm:ss) |
f | 简短的日期/时间格式(YYYY年MM月dd日 hh:mm) |
F | 完整的日期/时间格式(YYYY年MM月dd日 hh:mm:ss) |
g | 简短的可排序的日期/时间格式(YYYY-MM-dd hh:mm) |
G | 完整的可排序的日期/时间格式(YYYY-MM-dd hh:mm:ss) |
M或m | 月/日格式(MM月dd日) |
Y或y | 年/月格式(YYYY年MM月) |
static void Main(string[] args) { DateTime dt = DateTime.Now; Console.WriteLine("{0:d}",dt); Console.WriteLine("{0:D}", dt); Console.WriteLine("{0:t}", dt); Console.WriteLine("{0:T}", dt); Console.WriteLine("{0:f}", dt); Console.WriteLine("{0:F}", dt); Console.WriteLine("{0:g}", dt); Console.WriteLine("{0:G}", dt); Console.WriteLine("{0:M}", dt); Console.WriteLine("{0:m}", dt); Console.WriteLine("{0:Y}", dt); Console.WriteLine("{0:y}", dt); Console.Read(); }
5、截取字符串
String类提供了一个Substring方法,该方法可以截取字符串中指定位置和指定长度的字符。
语法:public string Substring(int startindex,int length)
static void Main(string[] args) { string strA = "字符串截取函数Substring测试示例"; string strB = ""; strB = strA.Substring(5,11); Console.WriteLine("函数输出结果:{0}",strB);//输出函数Substring Console.Read(); }
6、分割字符串
String类提供了一个Split方法,用于分割字符串,此方法的返回值分割子字符串的数组对象,可以通过数组取得所有分割的子字符串。
语法: public string[] split(params char[] separator)
static void Main(string[] args) { string strA = "字符#串%截取函数Substring测试/?示例"; char[] strB={'#','%','?','/'}; String[] str1=new String[100]; str1 = strA.Split(strB); for(int i=0;i<str1.Length;i++) { Console.WriteLine("item{0}:{1}",i,str1[i]); } Console.Read(); }
7、插入和填充字符串
(1)插入字符串
String类提供了一个Insert方法,用于向字符串的任意位置插入新元素,
语法: public string Insert(int startIndex,string value); 索引从0开始
(2)填充字符串
String类提供了PadLeft/PadRight方法用于填充字符串,PadLeft方法在字符串的左侧进行字符填充,而PadRight方法在字符串的右侧进行字符填充。
语法: public string PadLeft(int totalwidth,char paddingChar) totalWidth指定填充后的字符长度 paddingChar指定所要填充的字符,如果省略,则填充空格符号
static void Main(string[] args) { string strA = "字符串示例"; string strInsert = "插入"; string strResult = strA.Insert(3,strInsert); Console.WriteLine("插入字符串示例--{0}",strResult); string str2=strA.PadRight(7,'!'); Console.WriteLine("右侧插入字符串示例--{0}",str2); Console.Read(); }
8、删除字符串
String类提供了一个Remove方法用于从一个字符串的指定位置开始,删除指定数量的字符
语法: public String Remove(int starindex)
public String Remove(int startindex,int count)
索引从0开始
static void Main(string[] args) { string strA = "字符串删除示例程序"; Console.WriteLine(strA.Remove(7,2));//从第7个字符开始删除 Console.Read(); }
9、复制字符串
String类提供了Copy和CopyTo方法,用于将字符串或子字符串复制到另一个字符串或Char类型的数组中。
(1)Copy方法
创建一个与指定的字符串具有相同值的字符串的新实例
语法: public static string Copy(string str)
(2)CopyTo方法
将字符串的某一部分复制到另一个数组中
语法: public void CopyTo(int sourceIndex,char[] destination,int destinationIndex,int count)
参数 | 说明 |
sourceIndex | 需要复制的字符的起始位置 |
destination | 目标字符数组 |
destinationIndex | 指定目标数组中的开始存放位置 |
count | 指定要复制字符个数 |
static void Main(string[] args) { string strA = "字符串复制示例程序"; Console.WriteLine(String.Copy(strA));//字符串复制;使用类.方法 char[] str=new char[100]; strA.CopyTo(0, str, 0, 7); Console.WriteLine(str); Console.Read(); }
10、替换字符串
String类提供了一个Replace方法,用于将字符串中的某个字符或字符串替换成其他的字符或字符串
语法: public string Replace(char Ochar,char Nchar)
public string Replace(string Ovalue,string NValue)
参数 | 说明 |
OChar | 待替换的字符 |
NChar | 替换后的新字符 |
Ovalue | 待替换的字符串 |
Nvalue | 替换后的新字符 |
static void Main(string[] args) { string strA = "字符串替换示例程序"; Console.WriteLine(strA.Replace("示例","测试"));//字符串复制;使用类.方法 Console.Read(); }
三、可变字符串类StringBuilder
1、StringBuilder类的定义
语法: public StringBuilder(string value,int cap)
value: StringBuilder对象引用的字符串
cap: 设定StringBuilder对象的初始大小
2、StringBuilder类的使用
方法 | 说明 |
Append | 将文本或字符串追加到指定对象的末尾 |
AppendFormat | 自定义变量的格式并将这些值追加到StringBuilder对象的末尾 |
Insert | 将字符串或对象添加到当前StringBuilder对象中的指定位置 |
Remove | 从当前StringBuilder对象中移除指定数量的字符 |
Replace | 用另一个指定的字符来替换StringBuilder对象内的字符 |