字符串基础 C# 中单个字符用单引号包含就是 char 类型,( 'a' ),单引号中放且只能放一个字符。单个字符也可以表示为字符串,还可以有长度为 0 的字符串使用 s.Length 属性来获得字符串中的字符个数
string 可以看做是 char 的只读数组。 char c = s[1]; 。例子:遍历输出 string 中的每个元素。
C# 中字符串有一个重要的特性: 不可变性 ,字符串一旦声明就 不再可以改变。所以只能通过索引来读取指定位置的 char ,不能 对指定位置的 char 进行修改。
如果要对 char 进行修改,那么就必须创建一个新的字符串,用 s. ToCharArray () 方法得到字符串的 char 数组,对数组进行修改后 ,调用 new string(char[]) 这个构造函数(暂时不用细研究)来创建char 数组的字符串。一旦字符串被创建,那么char 数组的修改 也不会造成字符串的变化。例子:将字符串中的 A 替换为 a 。
谁说字符串不可变? string s = "abc";s="123" , s 这不是变了吗
要区分变量名和变量指向的值的区别。程序中可以有很多字符串,然后由字符串变量指向他们,变量可以指向其他的字符串,但是字符串本身没有变化。字符串不可变性指的是内存中的字符串不可变,而不是变量不变。
string s10 = s1;//s10 指向 s1 指向的字符串,而不是 s10 指向 s1 ,哪怕 s1以后指向了其他内存,那么 s10 还是指向 "hello"
字符串的常用函数 ToLower() :得到字符串的小写形式。
注意字符串是不可变的,所以这些函数都不会直接改变字
符串的内容,而是把修改后的字符串的值通过函数返回值
的形式返回。 s.ToLower() 与 s=s.ToLower()
ToUpper() :得到字符串的大写形式; Trim() 去掉字符串两
端的空白。
s1.Equals(s2, StringComparison.OrdinalIgnoreCase) ,两
个字符串进行比区分大小写的比较。
字符串的分割 string[] Split(params char[] separator) :将字符串按照指定的分割符分
割为字符串数组;
string[] Split(char[] separator, StringSplitOptions options) 将字符串按照
指定的 char 分割符分割为字符串数组( options 取RemoveEmptyEntries 的时候移除结果中的空白字符串);
string[] Split(string[] separator, StringSplitOptions options) 将字符串按
照指定的 string 分割符分割为字符串数组。
例子 1 :从日期字符串( "2008-08-08" )中分析出年、月、日; 2008 年
08 月 08 日。
例子 2 :从一个记录了学生成绩的文本文档,每个学生成绩是一行,每
行是用 | 分割的数据,用 | 分割的域分别是姓名、年龄、成绩,写程序取
出成绩最高学生的姓名和成绩。参考:使用 string[] lines =System.IO.File.ReadAllLines(@"c:\root.ini" , Encoding.Default ); 从文本文件读取数据,返回值为 string 数组,每个元素是一行。
字符串替换: string Replace(string oldValue, string newValue )
将字符串中的出现 oldValue 的地方替换为 newValue 。 例子:名
字替换。
取子字符串: string Substring(int startIndex) ,取从位置
startIndex 开始一直到最后的子字符串;
string Substring(int startIndex, int length) ,取从位置 startIndex
开始长度为 length 的子字符串,如果子字符串的长度不足 length
则 报错。
bool Contains(string value) 判断字符串中是否含有子串 value
bool StartsWith(string value) 判断字符串是否以子串 value 开始;
bool EndsWith (string value) 判断字符串是否以子串 value 结束;
int IndexOf(string value) : 取子串 value 第一次出现的位置。