C#中的字符与字符串

Char

  • Char在C#中表示一个Unicode字符,正是这些Unicode字符构成了字符串。Unicode字符是目前计算机通用的字符编码,它为针对不同的语言的每个字符设定了统一的二进制编码,用于满足跨语言,跨平台的文本转换,处理的要求。Char只能定义一个Unicode字符。

Char常用方法:

  • 【Is开头的方法大多是判断Unicode字符是否为某个类别】
  • 【To开头的方法主要是转换为其他Unicode字符。】
    在这里插入图片描述
    在这里插入图片描述
    例判断Unicode字符:
 			char c = '1';
            Console.WriteLine(char.IsLett er(c));
            Console.ReadKey();

以上代码会显示false,因为根据上图char的常用方法IsLetter是是否是字母的意思
在这里插入图片描述
转义字符:

  • C#采用字符”\”作为转义字符

在这里插入图片描述

            char c = '\n';
            Console.WriteLine("输入内容\n,哈哈哈");
            Console.WriteLine(char.IsSeparator(c));
            Console.ReadKey();

显示为:

在这里插入图片描述
复制链接到代码中转译字符报错的话就直接在地址前面加@ 就如qq邮箱

String字符串

字符串的关键字为string:

  • 它是String类的别名。string类型表示Unicode字符的字符串。String类类似于string类型,但是功能更强。虽然String类功能很强,但是它也是不可改变的。这就是说一旦创建String对象,就不能够修改。表面看来能够修改字符串的所有方法,实际上不能够修改。它们实际上返回一个根据所调用的方法修改的新的String。当需要大量的修改时,可使用StringBuilder类。

比较字符串:

  • 比较字符串并非比较字符串长度的大小,而是比较字符串在英文字典中的位置。比较字符串按照字典排序的规则,判断;两个字符串的大小。在英文字典中,前面的单词小于后面的单词。

compareTo:

  • 方法用来比较两个字符是否相等,不同的是Compare 方法以实例对象本身与指定的字符串比较
  • 0代表位置相等,-1代表前者的位置比后者的位置靠后,1代表前者位置大于后者位置
  			string str = "A";
            string str2 = "B";
            Console.WriteLine(str.CompareTo(str2));
            Console.ReadKey();

显示结果为 1 因为前者 “A”大于后者"B"

compare:

  • 方法用来比较两个字符串是否相等
  	        string str = "A";
            string str2 = "B";
            Console.WriteLine(string.Compare(str2,str));
            Console.ReadKey();  

显示结果同上面一样

Equals

  • 方法主要用于比较两个字符串是否相等,如果相同返回值为 true,否则为false

格式化字符串,Format方法

  • 用于将字符串数据格式化成指定的格式

  • 一般针对DateTime.Now进行格式化
    在这里插入图片描述
    以上表格中的F带秒,f不带秒

  • 如以下代码要求显示出当前日期格式

		    string str = string.Format("{0:d}",DateTime.Now);
            Console.WriteLine(str);
            Console.ReadLine();

代码分析:在{0:d}里面,0代表的是当前的时间,要求把它转成d简短日期格式

显示结果如下图:
在这里插入图片描述
截取字符串:

  • SubString方法,该方法可以截取字符串中指定位置和指定长度的字符。
  • 第一种,只截取第一个
			string str = "abcdefg";
 			Console.WriteLine(str.Substring(1));
            Console.ReadKey();

显示结果为
在这里插入图片描述
*第二种,从第一位开始截取后三位

			string str = "abcdefg";
 			Console.WriteLine(str.Substring(1,3));
            Console.ReadKey();

显示结果为:
在这里插入图片描述
文件的出现位置:

  • 第一种:当只有一个点时截取cs
 			 string str = "123.cs";
            //找到字符第一次出现的位置
            int index = str.IndexOf(".");
            //通过截取产生新的字符串
            string str2 = str.Substring(0, index);
            Console.WriteLine(str2);
            Console.ReadKey();

显示结果为cs
*第二种:当文件名如果有很多点时截取cs之前的

  			string str = "...1...2...3.cs";
            int index = str.LastIndexOf(".");
            string str2 = str.Substring(0, index);
            Console.WriteLine(str2);
            Console.ReadKey();

显示结果为…1…2…3

插入字符串:

  • Insert方法,用于向字符串的任意位置插入新元素
  			string str = "123";
            //(startIndex:插入的开始位置  value插入的值)
            string str2=str.Insert(1, "aaaaaa");
            Console.WriteLine(str2);
            Console.ReadKey();

显示结果为:
在这里插入图片描述
填充字符串:

  • PadLeft/PadRight 填充字符
    		string str = "123";
            //(totalWidth: 新的字符串的长度  paddingChar:填充的值)
            string str2 = str.PadLeft(5, 'A');
            Console.WriteLine(str2);
            Console.ReadKey();

显示结果如下:
在这里插入图片描述
删除字符串:

  • Remove方法,用于从一个字符串指定位置开始,删除指定数量的字符。
            string str = "123456";
            // (startIndex:开始删除元素的下表  count:删除此元素和此元素后的数量)
            string str2= str.Remove(3,2);
            Console.WriteLine(str2);
            Console.ReadKey();

显示结果为:
在这里插入图片描述
复制字符串:

  • Copy和CopyTo方法,用于将字符串复制到另外一个字符串或char类型的数组中
  • CopyTo
string str = "123";
            char[] destination = { 'T', 'h', 'e', 'i', 'n', 'i', 't', 'i', 'a', 'l', ' ', 'a', 'r', 'r', 'a', 'y' };
            //(sourceIndex:复制第一个字符索引  destination: 将所有字符复制到char数组 ,destinationIndex:在哪里开始复制操作  count:复制多少个)
            //索引和计数必须引用该字符串内的位置
            Console.WriteLine(destination);
            str.CopyTo(0, destination, 4 , str.Length);
            Console.WriteLine(destination);
            Console.ReadKey();

它不产生任何结果集,只是对当前的数组进行操作
显示结果为:
在这里插入图片描述

  • Copy
   	        string str = "123";
            string str2 = String.Copy(str);
            Console.WriteLine(str2);
            Console.ReadKey();

产生结果集
显示结果为:
在这里插入图片描述
CopyTo与Copy的区别:

  • CopyTo是替换掉数组中的值,Copy是全部内容的复制

替换字符串

  • Replace方法,用于将字符串中的某个字符或者字符串换成其他的字符或者字符串
 			 string str = "123";
            //(oldChar:旧的字符,newChar:新的字符)
            string str2=str.Replace('2','5');
            Console.WriteLine(str2);
            Console.ReadKey();

显示结果为
在这里插入图片描述
分割字符串

  • Split方法,用于分割字符串。该方法的返回值是包含所有分割子字符串的数组对象,可以通过数组取得所有分割的子字符串
    		string str = "1,234?568.abvfr";
            string[] strs=str.Split(new char[] { ',', '?', '.' });
            Console.WriteLine(strs.Length);
            Console.ReadKey();

显示结果为
在这里插入图片描述
StringBuilder

  • StringBuilder可变字符串类,存在于System.Text命名空间中,如果要创建StringBilder对象,首先必须引用此命名空间
  • 常用方法
    在这里插入图片描述
  • Append方法
		    StringBuilder sb = new StringBuilder();
            sb.Append("A");
            sb.Append("A");
            sb.Append("A");
            sb.Append("A");
            sb.Append("A");
            Console.WriteLine(sb);
            Console.ReadKey();

起了一种拼接效果
显示结果为
在这里插入图片描述

  • AppendFormat方法

           StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0:C}",9999999.99);
            Console.WriteLine(sb);
            Console.ReadKey();

显示结果为
在这里插入图片描述

  • Insert方法
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0:C}",9999999.99);
            sb.Insert(sb.Length, "插入的值");
            Console.WriteLine(sb);
            Console.ReadKey();

显示结果为
在这里插入图片描述

  • Remove方法
   		    StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0:C}",123.123);
            sb.Insert(sb.Length, "插入的值");
            sb.Remove(0,1);
            Console.WriteLine(sb);
            Console.ReadKey();

显示结果为:
在这里插入图片描述
*Replace方法

           StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0:C}",123.123);
            sb.Insert(sb.Length, "插入的值");
            sb.Remove(0,1);
            sb.Replace("插入的值","改变的值");
            Console.WriteLine(sb);
            Console.ReadKey();

显示结果为:
在这里插入图片描述
StringBuilder与String类的区别

  • String对象不可改变的,每次使用Stirng类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销会非常昂贵。如果修改字符串而不创建新的对象,则可以使用StirngBuilder类。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值