字面量,简写,语法糖 如:int = 10;
定义字符串: String strl ="hello"; 所有和字符串相关的操作都在system string类中, string strl ="你好";string是String的语法糖, 单引号只能包裹单个字符.$"{strl},{strl}"模板字符串写法.字符串不能直接换行,要想换行要使用邮箱符,写法:string strl = @"第一行字符串 第二行字符串 第三行字符串"
@允许换行,对特殊字符进行转义. \也是转义字符.邮箱符比\转义好一点.
换行还可以通过构造函数来定义字符串:例
char[] letter = { 'h','e', 'l', 'l' ,'o'};
string str = new string(letter);
比较值类型时,优先比较值;在比较字符串类型时优先比较值,没有比较地址;在比较饮用类型时,优先比较的的是地址,但字符串除外.
string a ="hello";//1
string b ="hello";//1
Console.WriteLine(a == b); //相等的原因是:比较字符串的值,没有比较地址
Console.WriteLine(a.Equals(b)); //Equals()相当于==
Console.WriteLine(a.CompareTo(b)); //0值表示相等 -1表示a比b小 1 表示a比b大
Console.WriteLine(string.Compare(a,b));
Console.WriteLine(string.Compare("hello","HELLO",ture/fasle)); //不区分大小写值一样,区分大小写值不同
Console.WriteLine(string.RferenceEquals(a,b));//比较两个字符串的地址
//RferenceEquals()在比较值类型时,会把值先进行"装箱"
/*string s1 = "hello";
string s2 = string Intern(s1);*/ //相当于1 s2是s1的实习生,s2与s1共享一个内存池,为了存储高效
string s3 = "world";
string s4 = string.Copy(s3);
string s5 = "hello world";
string s6 = string.Empty;
char[] letters = { 'a','b','c','d','e'};
s5.CopyTo(0,letters,0,5); //参数1,s5字符串开始复制的索引,参数2,复制到哪个char数组,参数3,替换的开始索引,参数4 替换的数量
Console.WriteLine(s5);
//判断某个字符串是不是说以某个子串开头,
Console.WriteLine("ABCD".StartsWith("D"));
//判断某个字符串是不是说以某个子串结尾,
Console.WriteLine("ABCD".EndsWith("D"));
double PI = 3.1415926;
Console.WriteLine(PI.ToString());
Console.WriteLine(PI.ToString("E")); //e||E表示科学计数法
Console.WriteLine(PI.ToString("C")); //c||C表示货币格式
// d||D表示十进制格式, X||x表示十六进制格式
DateTime now = DateTime.Now;
Console.WriteLine(now.ToString("ss"));
//从字符串查找某个子串所在的索引
string str3 = "select * from users";
Console.WriteLine(str3[7]);
Console.WriteLine(str3.IndexOf("*"));
int index = str3.IndexOf("*");
Console.WriteLine(index);
Console.WriteLine(str3[index]);
//不论是indexof(),还是lastindexof()只要找到某个子串,就返回子串的索引,不再继续查找.
//indexofany()或者lastindexofany()查询多个字符,哪个字符能找到索引,就返回哪个字符的索引,且是最小索引
//字符串插入
//Length表示字符串的长度,字符串索引从零开始,从length-1结束.
string ss1 = "hello";
Console.WriteLine(ss1.Length);
Console.WriteLine(ss1.Insert(0,"aa"));
string ss2 = ss1.Insert(0, "aa");
//字符串移除 参数1,删除字符串的起始索引. 参数2,删除的字符串位数
Console.WriteLine(ss2.Remove(1,2)); //删除的字符个数不能超过剩余的字符.
//判断一个字符串是不是一个 空串
string ss3 = string.Empty;
string ss4 = ""; //空字符串表示已经分配了空间,但空间内没有储存任何的数据
string ss5 = null;//null表示未分配空间,把一个变量设置为null,可以让gc垃圾回收此变量
//IsNull0rEmoty()只要mull或者空字符串,返回ture,否则返回为false
//JOIN()把一个字符串数组用特殊字符连接成一个字符串
string[] arr = { "苹果", "西瓜", "香蕉" };
string s9 = string.Join("++", arr);
Console.WriteLine(s9);
//替换
string ss6 = "liudehua";
string newss6 = ss6.Replace("liu","ma");
Console.WriteLine(newss6);
//拆分
string ss7 = "pingguo-xiangjiao-xigua";
string[] ss7arr = ss7.Split('-');
Console.WriteLine(ss7arr[0]);
Console.WriteLine(ss7arr[1]);
string a1 = "hello";
char[] ltter = { 'a', 'b', 'c','d','e' };
Console.WriteLine(ltter[0]);
//ToCharArray()把一个字符串转换成字符型数据
Console.WriteLine(a1.ToCharArray()[2]);
// 大小写转换
string a2 = "hello";
Console.WriteLine(a2.ToUpper());
Console.WriteLine(a2.ToLower());