首页 > 代码库 > S1/C#语言和数据库技术基础/04-深入C#的String类
S1/C#语言和数据库技术基础/04-深入C#的String类
常用字符串处理方法
方法 | 说明 |
Bool Equals(string value) | 比较一个字符串与另一个字符串value的值是否相等。若二者相等,则返回true;若不相等,则返回false |
Int Compare(string strA,string strB) | 比较两个字符串的大小关系,返回一个整数。若strA小于strB,则返回值小于0;若strA等于strB,则返回值为0;若strA大于strB,则返回值大于0 |
Int IndexOf(char ,string value) | 获取指定的value字符串在当前字符串中第一个匹配项的位置。如果找到了value,就返回它的位置;如果没有找到,就返回-1 |
Int LastIndexOf(string value) | 获取指定的字符串value在当前字符串中最后一个匹配项的位置。如果找到了value,就返回它的位置;如果没哟找到,就返回-1 |
String join(string separator,string[] value) | 把字符串数组value中的每个字符串用指定的分隔符separator连接,返回连接后的字符串 |
String[] split(char separator) | 用指定的分隔符separator分割字符串,返回分割后的字符串数组 |
String Substring(int startIndex,int length) | 从指定的位置startIndex开始检索长度为length的字符串 |
String ToLower() | 获得字符串的小写形式 |
String ToUpper() | 获得字符串的大写形式 |
String trim() | 去掉字符串前后两端多余的空格 |
提示:
1、运算“==”和Equals()方法:
运算符“==”和Equals()方法应用于两个字符串,所判断的内容是有差别的。简单地讲,“==”判断的是两个字符串对象在内存中的首地址,即判断是否是同一个字符串对象,而Equals()方法判断的是两个字符串对象的值是否相等。
2、“”和String.Empty:
“”:为String对象分配一个长度为零的存储空间。
String.Empty:表示空字符串,不会为对象分配存储空间。
在C#中,大多数情况下“”和String.Empty可以互换使用,一般建议使用后者。
连接分割字符串
注意:Join()方法是String类的静态方法,要以String类名来调用,这点与Split()方法不同。
资料:
在输出语句中出现了“\n”符号。这是一种特殊的字符常量,它的特点如下。
1、以反斜线“\”开头,后紧跟一个或几个字符。
2、具有特定的含义,不同于字符原有的意义,所以称为“转义字符”。
3、主要用来表示那些用一般字符不便于表示的控制代码,用可以看见的字符表示不可看见的字符。如:“\n”表示一个换行符,“\t”表示一个水平制表符。
C#设置路径的正确代码是“C:\\temp”,其中“\\”就是转义符,表示反斜杠。为了避免程序员因为缺少一个“\”符,导致程序执行中因路径找不到产生错误,C#提供了@字符以忽略转义符。例如,使用@字符可以简化设置路径的代码为@"C:\temp"。
Format格式化
string name="王强";
Console.WriteLine("我的名字是{0},我的年龄是{1}。",name,18);
这段代码中,Console.WriteLine()方法的参数“我的名字是{0},我的年龄是{1}。”叫作格式字符串,格式字符串后面的部分“name,18”是参数列表,格式字符串中的{x}叫作占位符。
Format()方法允许把字符串、数字或布尔型的变量插入到格式字符串中,它的语法和WriteLine()方法很相似。
语法:
String myString=String.Format("格式字符串",参数列表);
其中,格式字符串中包含固定文本和格式项。格式项的形式如下所示。
{索引 [ , 对齐 ] [ :格式字符串 ] }
其中,索引从0开始,与变量列表对应;对齐部分设置显示的宽度和对齐的方式,是一个带符号的整数,整数的大小表示数据的宽度,正数为右对齐,负数为左对齐;格式字符串部分包含格式说明符。
例如:
String myString=String.Format( " { 0 } 乘以 { 1 } 等于 { 2 } " , 2 , 3 , 2 * 3 );
格式化数值结果表
字符 | 说明 | 示例 | 输出结果 |
C | 货币格式 | String.Format("{0:C3}",2000) | ¥2 000.000 |
D | 十进制格式 | String.Format("{0:D3}",2000) | 2000 |
F | 小数点后的位数固定 | String.Format("{0:F3}",2000) | 2000.000 |
N | 用逗号(,)隔开的数字 | String.Format("{0:N}",250000) | 250,000 |
P | 百分比计数法 | String.Format("{0:P3}",0.29768) | 29.768 |
X | 十六进制格式 | String.Format("{0:X000}",12) | C |
例如:
String.Format("{0,-8:F2}",23);
显示结果为“23.00”,即以左对齐、宽度为8、保留2位小数的方式输出数值23。
String.Format("{0,8:C2}",23);
显示结果为“¥23.00”,即以右对齐、宽度为8、显示货币符号、保留2位小数的方式输出数值23。
类型转换
1、隐式类型转换
对于任何数值类型A,只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换为类型B。也就是说,int类型可以隐式转换为float型或double型,float型可以隐式转换为double型。
2、显示类型转换
把取值范围大的类型转换为取值范围小的类型。
数值类型与字符串之间的转换
1、字符串转换为数值型
当要把字符串转换为数值类型时,可以调用不同的数值类型的Parse()方法(Parse的中文意思是解析)。
例如,将字符串转换为整型的代码:
int.Parse(string);
将字符串转换为单精度浮点型的代码:
float.Parse(string);
将字符串转换为双精度浮点型的代码:
double.Parse(string);
注意,要转换的字符串必须是数字的有效表示形式,也就是表面上看起来是对应的数字。
2、数值型转换为字符串
字符串可以转换为数值,那么怎样将数值类型的数据转换为字符串呢,同java一样C#只要调用ToString()方法就可以。例如:
int age = 18;
String myage=age.ToString();WW
使用Convert类进行转换
Parse()方法是将字符串类型转换为数值型的,其实C#中还有一个更全能的类——Convert类,它可以在各种基本类型之间执行数据类型的互相转换。
常用Convert类的类型转换方法
方法 | 说明 |
Convert.ToInt32() | 转换为整型(int型) |
Convert.ToSingle() | 转换为单精度浮点型(float型) |
Convert.ToDouble() | 转换为双精度浮点型(double型) |
Convert.ToString() | 转换为字符串类型(string型) |
从结果可以看到:转换成int型时,进行了四舍五入的计算,这个和显示类型转换是不同的,前面我们使用显示类型转换将58.5转换为int型的结果是58,直接将小数点后的值舍弃掉了。
总结:各种转换的方法使用范围
隐式类型转换:常用于数值型之间,将取值范围小的数值类型转换为取值范围大的数值类型。
显示类型转换:常用于数值型之间,将取值范围大的数值类型转换为取值范围小的数值类型,用法是(XXX)变量或对象。
Parse()方法:将字符串转换为其他类型,永发围xxx.Parse(string).
Convert类:任何基本类型之间的互相转换。
需要注意的是,使用Parse()方法和Convert类进行转换的时候,如果转换没有意义则可能会出错。
S1/C#语言和数据库技术基础/04-深入C#的String类