复习索引: 字符串的两个特性 (不可变性)
不产生新串的查询操作:
IsNullOrEmpty、Contains,IndexOf,StartsWith EndsWith,Compare,CompareTo Equals(既是静态方法,也是实例方法))
会产生新的字符串的方法:
Format(静态方法) copy(静态方法) Trim CopyTo
join Insert split Substring Remove Replace PadLeft PadRight
StringBuilde类
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
$$字符串的两个特性:
特性一:不可变性
字符串是引用类型变量,对其赋值只是改变了变量名指向的字符串对象,要改变它就得将其转换城
这个对象,就得将其转换成一个字符数组,然后进行编辑
例:
char[] ch = str.ToCharArray();
对数组进行修改
str = new string(ch);
特性二:字符串池
常量字符串被存到字符串池中,可以被重复利用
$$不产生新串的方法
IsNullOrEmpty
bool result= str.Contains(string str); //查找字符串的子串是否存在
IndexOf方法 常用的两种形式: 注:如果不能找到字符串,会返回-1
int n = str.IndexOf(string str); // 从头开始,出现第一次的下标
int n = str.IndexOf(string str,int startIndex); // 从startIndex开始,出现第一次的下标
bool result = str.StartsWith(string str); 判断字符串str是否以某字符串开始
bool result = str.EndsWith(string str); 判断字符串str是否以某字符串结束
...............................................
字符串的比较:
compare、CompareTo方法:比较两个字符串在字典里面的顺序,前面的小于后面的,可能返回1、0、-1
bool result = string.Compare(str2,str1)
bool result = str1.CompareTo(str2) //CompareTo :比较两个字符串在字典里面的顺序
......................................................
bool result = string.Equals(str1,str2) //equals 既是 静态方法 也是 实例方法
bool result = str1.Equals(str2)
bool result = str1= =str2 //用 == 和 equals 的效果是一致的
......................................................
bool result = str1.ToLower() == str2.ToLower(); //忽略大小写的比较
$$产生新串的方法:
String.Format() 让数据按照自己指定的格式输出
string stra = "学会c#的24堂课"; string strb = "经典图书"; string strc = "c#入门经典";
string newstr = string.Format("{0}+{1}+{2}***",stra,strb,strc); //string.Format() 方法得到一个 string 类型值
str = str.ToUpper(); 将字符串中的字符都转换成大写
str = str.ToLower(); 转换成小写
str.Trim() // 移除首尾的空格,当括号里面不传参数的时候,默认去空格字符
str.TrimStart(); / str.TrimEnd(); // 移除开头的字符 移除结尾的字符
string str.Trim(char[] ch); //移除首尾的指定字符,可添加一个char数组作为参数
Copy:
string str3 = string.Copy(str); //copy 将str复制后赋值给str3
CopyTo:
string dest = "Hello world";
string source = "Goodbye China";
char[] destArray = dest.ToCharArray(); //将dest变成字符数组
source.CopyTo(8, destArray, 6, 5); //从source的第8个字符起复制5个字符并从destArray的第6个位置开始放
dest = new string(destArray); //这时dest为"Hello China"
字符串的合并与分割
join 合并:
str=str.jion(str,strArr); //将数组strArr中的内容拼接成一个字符串,并在对应数组的每两项间添加分隔符str
..............................................................
Insert 插入
string str3 = stra.Insert(index, str); //从索引为 index 的位置插入字符串 str
....................................................
split 分割:
string[] atrArray= str.Split(params char[] separator);
//将字符串str以separator数组中的字符分割,分割后得到的内容存到一个数组中
string[] words = str.Split(new char[]{' ',',','?'},StringSplitOptions.RemoveEmptyEntries);
//加上参数 StringSplitOptions.RemoveEmptyEntries,可以去掉空格
.................................................................
Substring 截取
string stra = "学通c#的24堂课";
string strb = stra.Substring(0,4); //第一个参数表示开始位置,第二个表示子串长度
string strc = stra.Substring(4); //当只有一个参数时,表示从当期位置开始,一直到结束
Remove 删除字符
string str1 = str.Remove(4); //当只有一个参数时,意思为:删除之后的所有字符
string str2 = str.Remove(2,3); //当有两个参数时,第一个参数表示开始位置,第二个表示删除子串长度
Replace 替换字符串
string str6 = str4.Replace("胡章诚","key");
PadLeft PadRight 填充
string stra = "12345";
string str4 = stra.PadLeft(6, '(');
string str5 = str4.PadRight(7, ')');
左填充从右开始计数,右填充从左开始计数,如果该位置本身有字符,则不填充,无字符就填充