-
目录
< 2 >Equals():比较两个字符串是否相同,相同返回真,否则返回假。
< 3 >Compare():比较字符串是否相同,返回-1,0,1
< 4 >CompareTo(): 进行比较,并返回一个整数,该整数指示此实例的值是小于、等于还是大于
<2>Substring(index,number):截取字符串,返回截取后的子串
< 3 >Replace("旧字符串","新字符串"):将字符串中的某个字符串替换成一个新的字符串
< 4 >Insert(n,*):插入字符串(第n位后面插入*)
< 5 >Remove(n):移除字符串(移除第n位后面的字符串)
< 8 >拼接两个string对象:+和string.Concat()
< 1 >IndexOf():查找某个字符串在字符串中第一次出现的位置
< 2 >LastIndexOf():查找某个字符串在字符串中最后一次出现的位置
< 2 >Contains():判断某个字符串中是否包含指定的字符串(会用到)
-
C#进阶
一、字符串
1、字符串属性
*.Length:获取字符串长度
例如:string str01 = "asdfsadf";
string str02 = "你好你好";
Console.WriteLine("asdfsadf字符段长度:"+ str01.Length );
Console.WriteLine("你好你好:" + str01.Length);
//一个汉字占两位,字符串长度和占位无关
Console.WriteLine(str01);
Console.WriteLine(str02);
2、字符串常用方法
1)判空
IsNullOrEmpty:判断字符串是否为Null或者空。
例如://如果为Null或者空,返回真;否则为假。
string str141 = "";//空字符串(“”)是占内存空间的
string str151 = null;//null是不占内存空间的
Console.WriteLine(string.IsNullOrEmpty(str141));
Console.WriteLine(string.IsNullOrEmpty(str151));
2)大小写转换
< 1 >ToUpper()转大写字母
例如:string str1 = "addfssd";
Console.WriteLine(str1 .ToUpper ());
< 2 >ToLower()转小写字母
例如: string str2 = "ADDFSSD";
Console.WriteLine(str2.ToLower());
< 3 >大小写转换(普遍方法)
例如://输入字符串,如果是大写字母,则转小写字母
//A的ASCII码是65,a的ASCII码是97
int c1 = Console.Read();
if(c1>=65&&c1<=91)//A~Z
{
c1 = c1 + 32;//+32大写转小写,-32小写转大写
Console.WriteLine((char)c1);
}
3)判断
< 1 >用==判断
例如: string str331 = "12312";
string str332 = "12312";
if (str331==str332)
{
Console.WriteLine("两个相等");
}
else
{
Console.WriteLine("两个不相等");
}
< 2 >Equals():比较两个字符串是否相同,相同返回真,否则返回假。
例如://字符串相同返回真,否则返回假
string str3 = "123";
string str4 = "123";
string str5 = "asdf";
Console.WriteLine(str3.Equals(str4));
Console.WriteLine(str3.Equals(str5));
< 3 >Compare():比较字符串是否相同,返回-1,0,1
例如:string str1 = "123";
string str2 = "12345";
string str3 = "123456";
string str4 = "12345";
Console.WriteLine(string.Compare(str1,str2));//-1
Console.WriteLine(string.Compare(str3, str2));//1
Console.WriteLine(string.Compare(str2, str4));//相同0
< 4 >CompareTo(): 进行比较,并返回一个整数,该整数指示此实例的值是小于、等于还是大于
例如:string str11 = "撒旦飞";
string str21 = "撒";
string str31 = "撒旦飞";
string str41 = "撒旦飞撒旦飞";
Console.WriteLine(str11.CompareTo(str21));//不相同 1
Console.WriteLine(str11.CompareTo(str31));//相同 0
Console.WriteLine(str11.CompareTo(str41));//不相同-1
/*
* 原理:从两个字符串的第一个字符开始逐个进行比较(按字符的ASCII值进行大小比较),
* 直到出现不同的字符或遇到‘’为止。
* 如果全部字符都相同,就认为两字符串相等,返回0;
* 若出现了不相同的字符,则以第一个不相同的字符比较结果为准,若前者字符大于后者,则返回1,否则返回 - 1.
*/
4)处理
< 1 >Split():分割字符串,返回字符串类型的数组
例如: string str51 = "账号-kubll-密码-123456";
string[] strArr = str51.Split('-');//注意里面填的是字符
foreach (string item in strArr)
{
Console.WriteLine(item);
}
<2>Substring(index,number):截取字符串,返回截取后的子串
例如://从第index位后(注意这个后),截取number个字符
string str61 = "你好呀,我是张三,你是谁呀?";
Console.WriteLine(str61.Substring(0, 1));
Console.WriteLine(str61.Substring(2, 1));
Console.WriteLine(str61.Substring(2, 2));
< 3 >Replace("旧字符串","新字符串"):将字符串中的某个字符串替换成一个新的字符串
例如://返回新的字符串
string str111 = "asdfsdfsdf";
Console.WriteLine(str111.Replace("fs", "你好"));
//打印机效果(主要是思想)
string str62 = "你好呀,我是张三,你是谁呀?";
string str63 = "";
int i = 0;
while(str63 .Length !=str62 .Length )
{
//间隔0.5秒
str63 = str62.Substring(0, i);
i++;
}
< 4 >Insert(n,*):插入字符串(第n位后面插入*)
例如:string str141 = "asdfsadfasdf";
Console.WriteLine(str141.Insert(3, "-"));//输出“"asd-fsadfasdf"
< 5 >Remove(n):移除字符串(移除第n位后面的字符串)
例如:string str1 = "123456789";
string str2 = str1.Remove(5);
string str3 = str1.Remove(1);
Console.WriteLine(str2);//输出:12345
Console.WriteLine(str3);//输出:1
< 6 >Copy()复制字符串
例如:string str98 = "asdfasdf";
Console.WriteLine(string.Copy(str98));
< 7 >CopyTo():复制到
例如:string strSource = "changed";
char[] destination = new char[20];
strSource.CopyTo(0, destination, 0, strSource.Length);
//sourceIndex Int32 要复制的此实例中第一个字符的索引。
//destination Char[] 此实例中的字符所复制到的 Unicode 字符数组。
//destinationIndex Int32 destination 中的索引,在此处开始复制操作。
//count Int32 此实例中要复制到 destination 的字符数。
foreach (var item in destination)
{
Console.WriteLine(item);
}
< 8 >拼接两个string对象:+和string.Concat()
例如:string str71 = "asdf";
string str72 = "你好呀";
//+:拼接两个string对象1
string str73 = str71 + str72;
Console.WriteLine(str73);
//string.Concat():拼接两个string对象2
string str74 = string.Concat(str71, str72);
Console.WriteLine(str74);
< 9 >PadLeft(n,str3):填充字符串
例如://(n:填充后的字符长度,str3所要填充的字符,如果省略,则填充空格符号)
string str2 = "123";
char str3 = 'J';
str2 = str2.PadLeft(10, str3);
Console.WriteLine(str2);
5)查找某字符在字符串中的索引(基本用不到)
< 1 >IndexOf():查找某个字符串在字符串中第一次出现的位置
例如://返回所在的索引位置值(索引从0开始)。如果没有找到,返回-1。
string str81 = "qwertyyui";
Console.WriteLine(str81.IndexOf("rt"));
Console.WriteLine(str81.IndexOf("qw"));
< 2 >LastIndexOf():查找某个字符串在字符串中最后一次出现的位置
例如://返回所在的索引位置值。如果没有找到,返回-1。
string str82 = "qwertyyuiui";
Console.WriteLine(str82.LastIndexOf("ui"));
6)判断是否包含
< 1 >判断字符串的开始结束(基本用不到)
1.StartsWith():判断是否以...字符串开始
例如://如果是,返回真;如果不是,返回假。
string str101 = "asdfasdfsdfasdf";
Console.WriteLine("as开头:" + str101.StartsWith("as"));
Console.WriteLine("asf开头:" + str101.StartsWith("asf"));
2.EndsWith():判断是否以...字符串结束
例如://如果是,返回真;如果不是,返回假。
string str102 = "asdfasdfsdfasdf";
Console.WriteLine("as结束:" + str102.EndsWith("as"));
Console.WriteLine("df开头:" + str102.EndsWith("df"));
< 2 >Contains():判断某个字符串中是否包含指定的字符串(会用到)
例如://如果包含返回真,否则返回假。
string str121 = "123456789";
Console.WriteLine("str121中是否存在45字符串:" + str121.Contains("45"));
7)去空格
< 1 >Trim():去掉字符串中前后空格
例如://返回处理后的字符串。
string str131 = " sdf s fda ssdf asd sd ";
Console.WriteLine(str131.Trim());//输出“sdf s fda ssdf asd sd”
< 2 >TrimStart():去掉字符串开始前的空格
例如://返回处理后的字符串。
string str132 = " sdf s fda ssdf asd sd ";
Console.WriteLine(str132.TrimStart());//输出“sdf s fda ssdf asd sd ”
< 3 >TrimEnd():去掉字符串结束后的空格
例如://返回处理后的字符串。
string str133 = " sdf s fda ssdf asd sd ";
Console.WriteLine(str133.TrimEnd());//输出“ sdf s fda ssdf asd sd”
3、格式化输出
例如://1、
string str1 = "1";
string str2 = "2";
string str3 = "3";
Console.WriteLine("{0}+{1}={2}", str1, str2, str3);
Console.WriteLine("{2}+{1}={0}", str1, str2, str3);
//2、
Decimal pricePerOunce = 17.36m;
String s = String.Format("The current price is {0} per ounce.", pricePerOunce);
Console.WriteLine(s);
四舍五入保留两位小数输出
例如:double point = 3.147;
Console.WriteLine("\n四舍五入保留两位小数输出:" + point.ToString("0.00"));
二、StringBuilder学习
1、创建
例如://注意:StringBuilder依赖System.Text命名空间
StringBuilder sb = new StringBuilder();//创建一个对象
2、处理
1).Append(5)追加数据
例如:sb.Append(5);
for(int i=0;i<=10;i++)
{
sb.Append(i);
}
Console.WriteLine(sb);
2).ToString():将sb转成字符串形式
如:sb.ToString();
3).Claer():清空sb中的数据
如:sb.Clear();
3、测试效率
Stopwatch类:
Stopwatch,秒表计时器,用来记录程序运行的时间
注意:Stopwatch依赖System.Diagnostics命名空间
1)字符串1~50000使用时间
例如:string str1 = "";
Stopwatch swStr = new Stopwatch();
swStr.Start();//计时器开始
for(int i=0;i<=50000;i++)
{
str1 += i;
}
swStr.Stop();//计时器结束
Console.WriteLine("swStr:"+swStr.Elapsed);//开始到结束之间的时长
2)可变字符串1~50000使用时间
例如:StringBuilder sb1 = new StringBuilder();
Stopwatch sw2SB = new Stopwatch();
sw2SB.Start();
for (int i = 0; i <= 50000; i++)
{
sb1 .Append (i);
}
sw2SB.Stop();//计时器结束
Console.WriteLine("sw2SB:" + sw2SB.Elapsed);//开始到结束之间的时长