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对象内的字符 |










