目录
1.2通过 new string 定义字符串(把索引范围内的转为string)
2.1 确定此实例是否与另一个string具有相同的值:Equals
2.3Object.ReferenceEquals(a,b)
2.5 判断某个字符串是不是以某个字符串开头:StartsWith/结尾:EndsWith
1.定义字符串
1.1通过字面量
1.2通过 new string 定义字符串(把索引范围内的转为string)
可以直接将char数组直接转为string数组
char[] arr = { 'a', 'b','c','d','e'};
String str = new String(arr);
//把索引范围内的转为string
String str2 = new String(arr,2,2);
Console.WriteLine(str2);
//结果:cd
1.3通过 new string 同时输出几个相同的数
String str1 = new String('a',5);
//结果:aaaaa
2.用于bool类型的string
2.1 确定此实例是否与另一个string具有相同的值:Equals
if (str.Equals(str1))
2.2 指定字符串是null还是Empty
if (string.IsNullOrEmpty(str1))
2.3Object.ReferenceEquals(a,b)
Object.ReferenceEquals(a,b)比较值类型,会先把值类型先进行“装箱”转为引用类型,引用类型不存在实习生,在比较值类型的时候,优先比较的是值;在比较引用类型的时候,有先比较地址,字符传除外。
int a = 0;
int b = 1;
if (Object.ReferenceEquals(a,b))
{ }
2.4 判断某个字符串中是否含有某个字串:Contains
格式:数组.Contains(字符串);
string str = "This is test";
if (str.Contains("test"))
{ }
//或者
Console.WriteLine("hello".Contains("e"));//true
2.5 判断某个字符串是不是以某个字符串开头:StartsWith/结尾:EndsWith
格式:"字符串"StartsWith("字符")
Console.WriteLine("ABCD".StartsWith("A"));//true
Console.WriteLine("ABCD".EndsWith("D"));//true
3.比较字符串地址
string a ="hello";
string b ="hello";
Console.WriteLine(string.ReferenceEquals(a,b));//True
//实习生指向一个内存
string a ="hello"+"aa";
string b ="hello"+"aa";//aa没有string没有分配空间
//会出现一个新的内存hello+aa,且ab都指向新的内存
Console.WriteLine(string.ReferenceEquals(a,b));//True
string a ="hello"+other;
string b ="hello"+other;
string other ="aa";
//出现两个新的hello+aa,再进行分配,原内存hello被回收
Console.WriteLine(string.ReferenceEquals(a,b));//false
//字符串实习生概念,注意只针对字符串
//先判断堆中是否有相同的内存,有了就不再存入,栈就指向了同一个内存
4.常用API(方法)
4.1 字符串插入 insert
格式:字符串.Insert(索引,内容);
string s1 = "hello";
Console.WriteLine(s1.Insert(0,"AA"));//位置,内容
4.2 字符串移除 Remove
格式:字符串.Remove(索引,个数)
string s2 = "world";
Console.WriteLine(s2.Remove(a,b));//a为位置,b为个数
4.3 截取字符串 Substring
格式:字符串.Substring(索引,个数);
string str1=str.Substring(0,i)
4.3 用特殊字符连接字符串数组 Join
格式:string.Join("特殊字符",数组);
string[] arr = { "西瓜","苹果"};
string s6 = string.Join(" -", arr);
4.4 字符串替换字符串 Replace
格式:字符串.Replace("原字符","替换字符");
string s7 = "刘德华";
string news7 = s7.Replace("刘","马");
4.5 以**拆分字符串为数组 Spllit
格式: 数组.Split('');(Split返回的是字符串数组)
string str = "刘-德-华";
string[] strs = str.Split('-');
4.6 /去空白字符 Trim
格式:字符串.Trim();
string str = " hello ";
Console.WriteLine(str.Trim());//去两边
Console.WriteLine(str.TrimStart());//去开头
Console.WriteLine(str.TrimEnd());//去结尾
4.7 字母大小写转换 ToUpper()/Tolower
式:字符串. ToUpper()/Tolower();
string str = "ABCDE";
string str1 = "abcde";
Console.WriteLine(str1.ToUpper());//转大写
Console.WriteLine(str.ToLower()) ;//转小写