一、字符串
字符是最常用的数据类型;很多场合都离不开字符串;所谓字符串,就是有一系列字符连续组成的串结构;用的是双引号来描述字符串 “ ”
C#里面的字符串是一个类,是封装的一个数据及操作的整体。非常容易使用,非常容易理解
二、常用属性&方法
常用的操作的目的其实就是围绕着这一个主题 增删改查
最最常用的字符串操作包括获取字符串的长度、查找某个字符在字符串中的位置、替换字符串中的内容、拆分字符串等。
编号 | 属性或方法名 | 作用 |
---|---|---|
1 | Length | 获取字符串的长度,即字符串中字符的个数 |
2 | IndexOf | 返回整数,得到指定的字符串在原字符串中第一次出现的位置 |
3 | LastlndexOf | 返回整数,得到指定的字符串在原字符串中最后一次出现的位置 |
4 | Starts With | 返回布尔型的值,判断某个字符串是否以指定的字符串开头 |
5 | EndsWith | 返回布尔型的值,判断某个字符串是否以指定的字符串结尾 |
6 | ToLower | 返回一个新的字符串,将字符串中的大写字母转换成小写字母 |
7 | ToUpper | 返回一个新的字符串,将字符串中的小写字母转换成大写字母 |
8 | Trim | 返回一个新的字符串,不带任何参数时表示将原字符串中前后的空格删除。 参数为字符数组时表示将原字符串中含有的字符数组中的字符删除 |
9 | Remove | 返回一个新的字符串,将字符串中指定位置的字符串移除 |
10 | TrimStart | 返回一个新的字符串,将字符串中左侧的空格删除 |
11 | TrimEnd | 返回一个新的字符串,将字符串中右侧的空格删除 |
12 | PadLeft | 返回一个新的字符串,从字符串的左侧填充空格达到指定的字符串长度 |
13 | PadRight | 返回一个新的字符串,从字符串的右侧填充空格达到指定的字符串长度 |
14 | Split | 返回一个字符串类型的数组,根据指定的字符数组或者字符串数组中的字符 或字符串作为条件拆分字符串 |
15 | Replace | 返回一个新的字符串,用于将指定字符串替换给原字符串中指定的字符串 |
16 | Substring | 返回一个新的字符串,用于截取指定的字符串 |
17 | Insert | 返回一个新的字符串,将一个字符串插入到另一个字符串中指定索引的位置 |
18 | Concat | 返回一个新的字符串,将多个字符串合并成一个字符串 |
- 我们实际的操作往往是多种操作的搭配使用
核心还是练习一下
三、数据类型转换
很多时候我们获取的字符串往往不能直接使用,就像我们从数据库里面取的值有时候需要转换一下数据类型然后再进一步在我们代码中使用。
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 的转换可能会导致精度下降,但决不会引起数量上的丢失。其它的隐式数值转换则不会有任何信息丢失。
2、显式类型转换
显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。有两类
- 使用的是Convert类来进行单独转换
方法 | 描述 |
---|---|
ToBoolean | 如果可能的话,把类型转换为布尔型。 |
ToByte | 把类型转换为字节类型。 |
ToChar | 如果可能的话,把类型转换为单个 Unicode 字符类型。 |
ToDateTime | 把类型(整数或字符串类型)转换为 日期-时间 结构。 |
ToDecimal | 把浮点型或整数类型转换为十进制类型。 |
ToDouble | 把类型转换为双精度浮点型。 |
ToInt16 | 把类型转换为 16 位整数类型。 |
ToInt32 | 把类型转换为 32 位整数类型。 |
ToInt64 | 把类型转换为 64 位整数类型。 |
ToSbyte | 把类型转换为有符号字节类型。 |
ToSingle | 把类型转换为小浮点数类型。 |
ToString | 把类型转换为字符串类型。 |
ToType | 把类型转换为指定类型。 |
ToUInt16 | 把类型转换为 16 位无符号整数类型。 |
ToUInt32 | 把类型转换为 32 位无符号整数类型。 |
ToUInt64 | 把类型转换为 64 位无符号整数类型。 |
- 还有一种加类型名强制转换;就像C语言一样类型转换主要用于将存储范围大的数据类型转换成存储范围小的,但数据类型需要兼容。
数据类型变量名 = (数据类型) 变量名或值;
double number = 12345678910.456;
int k = (int) number;//此处运用了强制转换
这样虽然能将值进行类型的转换,但损失了数据的精度,造成了数据的不准确,因此在使用强制类型转换时还需要注意数据的准确性。
3、装箱和拆箱
在 C# 语言中数据类型分为值类型和引用类型,将值类型转换为引用类型的操作称为装箱,相应地将引用类型转换成值类型称为拆箱。
int val = 100;
object obj = val;
Console.WriteLine("对象的值 = {0}", obj);
//这是一个装箱的过程,是将值类型转换为引用类型的过程
int val = 100;
object obj = val;
int num = (int) obj;
Console.WriteLine("num: {0}", num);
//这是一个拆箱的过程,是将值类型转换为引用类型,再由引用类型转换为值类型的过程