一、Char?
1.1 Char在C#中表示一个Unicode字符,正是这些Unicode字符构成了字符串。Unicode字符是目前计算机通用的字符编码,它为针对不同的语言的每个字符设定了统一的二进制编码,用于满足跨语言,跨平台的文本转换,处理的要求。Char只能定义一个Unicode字符。
1.2 Char常用方法:(以Is和To开头的为重要方法。Is开头的方法大多是判断Unicode字符是否为某个类别,以To开头的方法主要是转换为其他Unicode字符。)
1.3 转义字符
C#采用字符”\”作为转义字符。
二、String?
1.1字符串的关键字为string。
它是String类的别名。string类型表示Unicode字符的字符串。String类类似于string类型,但是功能更强。虽然String类功能很强,但是它也是不可改变的。这就是说一旦创建String对象,就不能够修改。表面看来能够修改字符串的所有方法,实际上不能够修改。它们实际上返回一个根据所调用的方法修改的新的String。当需要大量的修改时,可使用StringBuilder类。
1.2比较字符串
比较字符串并非比较字符串长度的大小,而是比较字符串在英文字典中的位置。比较字符串按照字典排序的规则,判断;两个字符串的大小。在英文字典中,前面的单词小于后面的单词。
Compare方法用来比较两个字符串是否相等。
CompareTo方法用来比较两个字符是否相等,不同的是CompareTo 方法以实例对象本身与指定的字符串比较。
Equals方法主要用于比较两个字符串是否相等,如果相同返回值为 true,否则为false。
1.3格式化字符串
Format方法,用于将字符串数据格式化成指定的格式。(一般针对DateTime.Now进行格式化)
1.4截取字符串
SubString方法,该方法可以截取字符串中指定位置和指定长度的字符。
1.5分割字符串
Split方法,用于分割字符串。该方法的返回值是包含所有分割子字符串的数组对象,可以通过数组取得所有分割的子字符串。
1.6插入字符串
Insert方法,用于向字符串的任意位置插入新元素。
1.7填充字符串
PadLeft/PadRight 填充字符。
1.8删除字符串
Remove方法,用于从一个字符串指定位置开始,删除指定数量的字符。
1.9复制字符串
Copy和CopyTo方法,用于将字符串复制到另外一个字符串或char类型的数组中。
1.10替换字符串
Replace方法,用于将字符串中的某个字符或者字符串换成其他的字符或者字符串。
三、StringBuilder?
1.1 StringBuilder可变字符串类,存在于System.Text命名空间中,如果要创建StringBilder对象,首先必须引用此命名空间。
1.2 常用方法:
四、StringBuilder与String类的区别(面试题)
String对象不可改变的,每次使用Stirng类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销会非常昂贵。如果修改字符串而不创建新的对象,则可以使用StirngBuilder类。
五、代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _03
{
class Program
{
static void Main(string[] args)
{
//char c = 'a';
//char d = 'd';
is开头
1.判断字符是否属于控制字符
//Console.WriteLine(char.IsControl(c));
2.判断字符是否属于十进制数字
//Console.WriteLine(char.IsDigit(c));
3.判断对象是否属于高代理项
//Console.WriteLine(char.IsHighSurrogate(c));
4.判断字符是否属于字母
//Console.WriteLine(char.IsLetter(c));
5.判断字符是属于字母还是属于十进制数字
//Console.WriteLine(char.IsLetterOrDigit(c));
6.判断字符是否属于小写
//Console.WriteLine(char.IsLower(c));
7.判断对象是否属于低代理项
//Console.WriteLine(char.IsLowSurrogate(c));
8.判断字符是否属于数字
//Console.WriteLine(char.IsNumber(c));
9.判断字符是否属于标点符号
//Console.WriteLine(char.IsPunctuation(c));
10.判断字符是否属于分隔符
//Console.WriteLine(char.IsSeparator(c));
11.判断对象是否属于代理项字符
//Console.WriteLine(char.IsSurrogate(c));
12.判断是否形成代理项对(两个参数)
//Console.WriteLine(char.IsSurrogatePair(c,d));
13.判断字符是否属于符号字符
//Console.WriteLine(char.IsSymbol(c));
14.判断字符是否为大写
//Console.WriteLine(char.IsUpper(c));
15.判断字符是否属于空白
//Console.WriteLine(char.IsWhiteSpace(c));
// to开头
//string str = "abc";
//char c = 'A';
//将指定的字符串的值转换为它的等效字符
//Console.WriteLine(char.Parse(str));
//bool result;
//DateTime datetimeVal;
//result = DateTime.TryParse("7/4/2004 12:34:56", out datetimeVal);
将字符转为小写
//Console.WriteLine(char.ToLower(c));
使用固定区域性的大小规则,将字符转为小写
//Console.WriteLine(char.ToLowerInvariant(c));
将字符转为字符串
//Console.WriteLine(char.ToString(c));
将字符转为大写
//Console.WriteLine(char.ToUpper(c));
使用固定区域性的大小规则,将字符转为大写
//Console.WriteLine(char.ToUpperInvariant(c));
//Console.ReadKey();
//string a = "a";
//string b = "b";
//Console.WriteLine(string.Compare(b,a));
//Console.WriteLine(b.CompareTo(a));
//Console.WriteLine(DateTime.Now);
//Console.WriteLine(DateTime.UtcNow);
//Console.WriteLine(string.Format("{0:d}",DateTime.Now));
//Console.WriteLine(string.Format("{0:G}", DateTime.Now));
//Console.WriteLine(string.Format("{0:C2}", 99999999999));
//indexof 查找出现位置 根据下标为 0开始 获取出现的位置
//string str="f.cs";
//Console.WriteLine(str.IndexOf('.'));
//Console.WriteLine(str.LastIndexOf('.'));
//截取字符串
//int index = str.LastIndexOf('.');
//Console.WriteLine(str.Substring(index));
//Console.WriteLine(str.Replace(".",string.Empty));
//Console.WriteLine(str.Split('.').Length);
// Insert会产生一个新的string字符串
//Console.WriteLine(str.Insert(0, "你好"));
//Console.WriteLine(str.PadLeft(10,'.'));
//Console.WriteLine(str.PadRight(10,'.'));
//string str = "abcd";
//Console.WriteLine(str.Remove(0,2));
//Console.WriteLine(string.Copy(str));
//char[] cc = new char[str.Length];
//str.CopyTo(0, cc, 0, str.Length);
//Console.WriteLine(cc);
//Console.ReadKey();
//StringBuilder sb = new StringBuilder();
//sb.Append(" a");
//sb.AppendFormat("{0:d}",DateTime.Now);
//Console.WriteLine(sb);
//Console.ReadKey();
// if-else if-if else-else if的嵌套
//bool bb = true;
//int b = 1;
//if (b==1) {
// if (bb==true) {
// Console.WriteLine("true");
// }
// else
// {
// Console.WriteLine("false");
// }
//}
//else {
// Console.WriteLine("3");
//}
//Console.ReadKey();
//switch case的使用
//int caseSwitch = 1;
//switch (caseSwitch)
//{
// case 1:
// Console.WriteLine("Case 1");
// break;
// case 2:
// Console.WriteLine("Case 2");
// break;
// default:
// Console.WriteLine("Default case");
// break;
//}
//Console.ReadKey();
//while的使用 迭代
//int n = 1;
//while (n < 6)
//{
// Console.WriteLine("Current value of n is {0}", n);
// n++;
//}
// do...while语句
//int x = 0;
//do
//{
// Console.WriteLine(x);
// x++;
//} while (x < 5);
//for循环
//for (int i = 1; i <= 5; i++)
//{
// Console.WriteLine(i);
//}
//char[] chars = new char[4];
//chars[0] = 'X'; // Character literal
//chars[1] = '\x0058'; // Hexadecimal
//chars[2] = (char)88; // Cast from integral type
//chars[3] = '\u0058'; // Unicode
//foreach (char cc in chars)
//{
// Console.Write(cc + " ");
// continue;
//}
//Console.ReadKey();
//转义符
//string str = "aaa";
// \n 回车换行
//Console.WriteLine("\n"+str);
// \t 横向调到下一制表位置
//Console.WriteLine("\t"+str);
// \v 竖向跳格
//Console.WriteLine("\v"+str);
// \b 退格
//Console.WriteLine("\b"+str);
// \r 回车
//Console.WriteLine("\r" + str);
// \f 换页
//Console.WriteLine("\f"+str);
// \\ 反斜线符
//Console.WriteLine("\\"+str);
// \' 单引号符
//Console.WriteLine("\'"+str);
// \ddd 1-3位八进制数所代表的字符
//Console.WriteLine("\xhh"+str);//无法识别
//Console.ReadKey();
}
}
}