1、字符串的定义:string <name>;
<name> = <value>;
或者: string <name> = <value>;
字符串是引用类型,在定义string <name>;的时候在栈空间中,定义了一个<name>的空间,该空间存放一个地址;当写到<name> = "hello";的时候,会在堆内存中分配一个空间,存放字符串“Hello”,并将首地址赋值给<name>,因此<name>指向定义的字符串。
2、字符串的声明:
字符串string对应MSIL(CTS)中的String,实际上是一个类。string <name> = new String(); 或者 string <name> = new String(new char[]{...});
注意:这里String 与 string 得到的效果一样;
字符串是不可变的,在内存中字符串一旦生成,将不会改变,即使之前使用的str1 + str2也只是生成了另一个字符串。那怎么修改字符串?
<strName>.ToCharArray();该方法会将字符串,变成一个char类型的数组,因此需要用一个char类型的数组接收。
如:修改一个字符串里面的内容 char[] ch = <strName>.ToCharArray();// 处理字符数组,完成修改目的
<strName> = new String(ch) // 为修改后的字符串
3、字符串可以用索引访问:
字符串,原本就是排在一起的字符,c#提供了用“下标”(索引)来访问字符串中的字符。 string str = "jiangkun"; 字符串有 Length属性,用str.Length 可以获得str字符串的长度。
char temp = str[5];//访问str字符串中的第五个字符,并赋值给字符变量temp
4、字符串常用属性:
string.Empty//Empty 为空字符串
string.IsNullOrEmpty(str) //判断str字符串是否为null或者为空字符串
5、常见的字符串的方法:
字符串转换大小写(字符)
string <strName>.ToUpper();
string <strName>.ToLower();
移除首尾制定字符
string <strName>.Trim();//移除首尾空格
string <strName>.TrimStart();//移除开头的空格
string <strName>.TrimEnd();//移除结尾处空格
string <strName>.Trim(char[] ch);//char数组中为要移除的内容
字符串的比较
int string.Compare(String str1, string str2);//按照字典排序比较
当 str1 > str2 时,返回 1;
当 str1 = str2 时,返回 0;
当 str1 < str2 时,返回-1;
int string.Compare(string str1,string str2,bool ignoreCase)//ignoreCase表示是否区分大小写。true为不区分大小写,默认为false
bool <strName>.Equals(string str) //str1 == str2 则返回true,否则返回false;
bool <strName>.Equals(string str,StringComparison.OrdinalIgnoreCase)//StringComparison.OrdinalIgnoreCase为比较是不区分大小写
如果仅仅是比较两个字符串是否相等,还是使用“==”比较简单。 bool isEqual = str1.ToLower()==str2.ToLower();//不考虑大小写
字符串的合并
string string.Join(string str,string[] strArr);//将数组strArr中的内容拼接成一个字符串,并在对应数组的每两项间添加分隔符str
字符串的分割
string[] <strName>.Split(params char[] separator);//将字符串<strName>以separator数组中的字符分割,分割后得到的内容存到个数组中
string[] <strName>.Split(params char[] separator,StringSplitOptions.RemoveEmptyEntries);//去掉返回的数组中可能存在的空字符串
字符串查找
bool <strName>.Contains(string str);表示字符串<strName>中是否包含str,如果包含,返回true,否则返回false
int <strName>.IndexOf(string str)//从头开始,出现第一次的下标,从左到右执行查找
int <strName>.IndexOf(string str,int startIndex);//从startIndex开始,出现第一次的下标,如果没有找到则返回-1
int <strName>.LastIndexOf(string str[,int startIndex]);返回字符str在<strName>中最后一次出现的位置,从右到左执行查找
int <strName>.IndexOfAny(char[] anyOf,int startIndex)//寻找字符数组中的所有内容,返回第一个的位置
求字符串
string <strName>.Substring(int startIndex,int length)//从字符串<strName>的startIndex位置开始提取长度为length的字符串,如果省略了length,则表示一直到最后
字符串插入
string <strName>.Insert(int index,string str)//在<strName>的index位置上插入str.原来的字符一次后移,变成一个新的字符串
字符串移除
string <strName>.Remove(int startIndex,int length)//在字符串<strName>中移除startIndex开始,长度为length的字符串,剩下的字符按原序合并为一个新的字符串,如果省略了length,则表示移除startIndex 后的所有字符
字符串替换
string <strName>.Replace(char oldChar,char newChar) //字符替换
string <strName>.Replace(string oldString,string newString)//字符串替换
判断字符串的结束与开始
bool <strName>.StartWith(string str);//判断<strName>是否以字符串str开始的
bool <strName>.EndWith(string str);//判断<strName>是否以字符串str的结束的