二、C#字符串(string)

1.string类型的API

  • 1)、Length:获得当前字符串中字符的个数

  • 2)、ToUpper():将字符转换成大写形式

  • 3)、ToLower():将字符串转换成小写形式

  • 4)、Equals(lessonTwo,StringComparison.OrdinallgnoreCase);:比较两个字符串,可以忽略大小写

  • 5)、Split():分割字符串,返回字符串类型的数组。

  • 6)、Substring():解决字符串。在截取的时候包含要截取的那个位置。

  • 7)、IndexOf():判断某个字符串在字符串中第一次出现的位置,如果没有返回-1、值类型和引用类型在内存上存储的地方不—样。

  • 8)、LastIndexOf():判断某个字符串在字符串中最后一次出现的位置,如果没有同样返回-1

  • 9)、StartsWith():判断以...开始

  • 10)、EndsWith():判断以...结束

  • 11)、Replace():将字符串中某个字符串替换成—个新的字符串

  • 12)、Contains():判断某个字符串是否包含指定的字符串

  • 13)、PadLeft():字符串不足位,左边补指定字符。

  • 14)、PadRigth():字符串不足位,右边补指定字符。

string i = "656";
Console.WriteLine(i.PadRight(4, '1'));//输出6561
Console.WriteLine(i.PadLeft(5, '1'));//输出11656
  • 15)、Trim():去掉字符串中前后的空格

  • 16)、TrimEnd():去掉字符串中结尾的空格

  • 17)、TrimStart():去掉字符串中前面的空格

  • 18)、string.IsNullOrEmpty():判断一个字符串是否为空或者为null

  • 19)、string.Join():将数组按照指定的字符串连接,返回一个字符串。

  • 18)、string1.Intersect(string2):数组string1和数组string2取交集

  • 20)、string1.Except(string2):数组string1和数组string2取差集

  • 21)、string1.Union(string2):数组string1和数组string2取并集

2.类型转换

2.1隐式转换
  • 隐式数值转换包括以下几种:

●从sbyte类型到short,int,long,float,double,或decimal类型。

●从byte类型到short,ushort,int,uint,long,ulong,float,double,或decimal类型。

●从short类型到int,long,float,double,或decimal类型。

●从ushort类型到int,uint,long,ulong,float,double,或decimal类型。

●从int类型到long,float,double,或decimal类型。

●从uint类型到long,ulong,float,double,或decimal类型。

●从long类型到float,double,或decimal类型。

●从ulong类型到float,double,或decimal类型。

●从char类型到ushort,int,uint,long,ulong,float,double,或decimal类型。

●从float类型到double类型。

  • 其中,从int,uint,或long到float以及从long到double的转换可能会导致精度下降,但决不会引起数量上的丢失。其它的隐式数值转换则不会有任何信息丢失。

  • 结合我们在数据类型中学习到的值类型的范围,我们可以发现,隐式数值转换实际上就是从低精度的数值类型到高精度的数值类型的转换。

  • 从上面的10条我们可以看出,不存在到char类型的隐式转换,这意味着其它整型值不能自动转换为char类型。

2.2显式类型转换(强制转换)
2.1.1 显式类型转换,又叫强制类型转换。与隐式转换正好相反,显式转换需要用户明确地指定转换的类型。比如下面的例子把long类型显式转换为int类型:
long l=5000;
int i=(int)l;
  • 显式数值转换是指当不存在相应的隐式转换时,从一种数字类型到另一种数字类型的转换。包括:

●从sbyte到byte,ushort,uint,ulong,或char。

●从byte到sbyte或char。

●从short到sbyte,byte,ushort,uint,ulong,或char。

●从ushort到sbyte,byte,short,或char。

●从int到sbyte,byte,short,ushort,uint,ulong,或char。

●从uint到sbyte,byte,short,ushort,int,或char。

●从long到sbyte,byte,short,ushort,int,uint,ulong,或char。

●从ulong到sbyte,byte,short,ushort,int,uint,long,或char。

●从char到sbyte,byte,或short。

●从float到sbyte,byte,short,ushort,int,uint,long,ulong,char,或decimal。

●从double到sbyte,byte,short,ushort,int,uint,long,ulong,char,float,或decimal。

●从decimal到sbyte,byte,short,ushort,int,uint,long,ulong,char,float,或double。

这种类型转换有可能丢失信息或导致异常抛出,转换按照下列规则进行:

●对于从一种整型到另一种整型的转换,编译器将针对转换进行溢出检测,如果没有发生溢出,转换成功,否则抛出一个OverflowException异

常。这种检测还与编译器中是否设定了checked选项有关。

●对于从float,double,或decimal到整型的转换,源变量的值通过舍入到最接近的整型值作为转换的结果。如果这个整型值超出了目标类型的

值域,则将抛出一个OverflowException异常。

●对于从double到float的转换,double值通过舍入取最接近的float值。如果这个值太小,结果将变成正0或负0;如果这个值太大,将变成正

无穷或负无穷。如果原double值是Nan,则转换结果也是NaN。

●对于从float或double到decimal的转换,源值将转换成小数形式并通过舍入取到小数点后28位(如果有必要的话)。如果源值太小,则结果

为0;如果太大以致不能用小数表示,或是无穷和NaN,则将抛出InvalidCastException异常。

●对于从decimal到float或double的转换,小数的值通过舍入取最接近的值。这种转换可能会丢失精度,但不会引起异常。

2.2.2 Convert类常用的类型转换方法:
  • (1) Convert.ToInt16(a)转换为整型(short);

  • (2) Convert. ToInt32(a)转换为整型(int);

  • (3)Convert.ToInt64(a)转换为整型(long);

  • (4)Convert.ToChar(a)转换为字符型(char);

  • (5)Convert.ToString(a)转换为字符串型(string);

  • (6)Convert.ToDateTime(a)转换为日期型(datetime);

  • (7) Convert.ToDouble(a)转换为双精度浮点型(double);

  • (8)Convert.ToSingle(a)转换为单精度浮点型(float);

2.2.3 装箱、拆箱也属于强制转换
int i= 10;
Object obj = i;

3.类型判断

3.1 Convert.GetTypeCode(对象)
Console. WriteLine (Convert. GetTypeCode(2)); // Int32
Console. WriteLine (Convert. GetTypeCode("hello")); // String
3.2 typeof(对象)
Console. WriteLine (typeof(p)); // System.Person
Console. WriteLine (typeof("abcd"));// String
3.3 is
  • is一般用来判断引用类型(如字符串类型),不建议判断值类型。

Person p = new Person();
Console. WriteLine(p is Person); // True
Console. WriteLine(p is Animal); // False
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值