C#第四章笔记2021-9-29(完)
文章目录
4.1、C#中的 String 类
字符串是应用程序中最常用的一种数据类型。
现在就让我们来认识强大的 String 类
4.1.1、常用的字符串处理方法
C# 中提供了比较丰富的字符串处理方法。如下:
- bool Equals (string value) 方法
比较一个字符串与另一个字符串 value 的值是否相等。若两者则返回 true;若不相等,则返回 false
- int Compare(string strA, string strB)
比较两个字符串的大小关系,返回一个整数。若 strA 小于 strB,则返回值小于0;若 strA 等于 strB,则返回值为0;若 strA 大于 strB,则返回值大于0
- int IndexOf(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 starIndex,int length)
从指定的位置 starIndex 开始检索长度为 length 的子字符串
- string ToLower( )
获得字符串的小写形式
- string ToUpper( )
获得字符串的大写形式
- string Trim( )
去掉字符串前后两端多余的空格
4.1.2、连接分割字符串
调用 String 类的 Split( ) 和 Join( ) 方法分割和连接字符串。如下 :
class Program
{
static void Main(string[] args)
{
string inputString; //输入的字符串
string[] splitStrings; //分割后的字符串数组
string joinString; //连接后的新字符串
//输入提示
Console.WriteLine("请输入一串字符串,用空格分隔单词:");
inputString = Console.ReadLine(); //接收输入
//以空格作为分隔符分割字符串
splitStrings = inputString.Split(' ');
//将分割后的字符串输出
Console.WriteLine("\n分割后的字符串为:");
foreach (string s in splitStrings)
{
Console.WriteLine(s);
}
//将分割后的字符串使用下划线连接在一起
joinString = string.Join("_", splitStrings);
//将连接后的字符串输出
Console.WriteLine("\n连接后的新字符串为:{0}",joinString);
}
}
结果如下:
4.1.3、Format 格式化
程序员常常会使用格式字符串和参数列表的形式输出应用程序的数据。如:
string name = "张三";
Console.WriteLine("我的名字是{0},我的年龄是{1}。",name,18);
这段代码中,Console.WriteLine( ) 方法的参数 “我的名字是{0},我的年龄是{1}。”叫作格式字符串,格式字符串后面的部分“name , 18”是参数列表,格式字符串中的 {x} 叫作占位符。
通常,客户大都需要按照特定的格式在屏幕或报表中输出程序数据。为了满足客户这方面的需求,往往需要用到 C# 的 String 类提供的一个 Format( ) 方法对输出的字符串进行格式化。Format( ) 方法允许把字符串,数字或布尔型的变量插入到格式字符串当中,它的语法和 WriteLine( ) 方法很相似。
语法: String myString = String.Format(“格式字符串” , 参数列表);
其中,格式字符串中包含固定文本和格式项。如下:
{ 索引 [, 对齐] [:格式字符串] }
其中,索引从 0 开始,与变量列表对应;对齐部分设置显示的宽度和对齐的方式,是一个带符号的整数,整数的大小表示数据的宽度,正数为右对齐,负数为左对齐;格式字符串部分包含格式说明符。如下:
String myString = String.Format("{0} 乘以 {1} 等于 {2}",2,3,2*3);
这条语句的结果就是字符串 myString 的值为 “2 乘以 3 等于 6”。
如下 Format( ) 方法的格式字符串中各种格式化定义字符和示例
字符 | 说明 | 示例 | 输出结果 |
---|---|---|---|
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 |
4.2、类型转换
C# 和 java 一样 ,编译器在任何时候都要确切地知道数据地类型,正因为不同类型之间有明确的区别,所以就需要进行类型转换。
4.2.1、简单的类型转换
1.隐式类型转换:小的数据类型 转换 成大的数据类型;
如:int 型可以隐式转换为 float 型或 double 型,float 型可以隐式转换为 double 型。
1.显式类型转换:与隐式类型转换相反,当要把取值范围大地类型转换为取值范围小的类型时,就需要执行显式转换;
如下隐式类型转换:
class Program
{
static void Main(string[] args)
{
int score = 58; //原始成绩
int bonus = 2; //加分
double sum; //总分
//隐式类型转换
sum = score + bonus; //计算总分
Console.WriteLine("原分数:{0}分", score);
Console.WriteLine("加分后分数:{0}分",sum);
}
}
如下显式类型转换:
class Program
{
static void Main(string[] args)
{
double score = 58.5; //原始成绩
int bonus = 2; //加分
int sum; //总分
//显式类型转换
sum = (int)score + bonus; //计算总分
Console.WriteLine("原分数:{0}分", score);
Console.WriteLine("加分后分数:{0}分",sum);
}
}
显式类型转换会损失精度.如上:double 类型的 85.5 ,转换为 int 类型之后 变成了 85
4.2.2、数值类型与字符串之间的转换
隐式类型转换和显式类型转换一般都用在数值类型数据之间,并不适用于数值类型和字符串之间的转换。
1.字符串转换为数值型
当要把字符串转换为数值类型时,可以调用不同的数值类型的 Parse( ) 方法 (parse 的中文意思是解析)。
例如:将字符串转换为整型代码:
int.Parse(string);
将字符串转换为单精度浮点型代码:
float.Parse(string);
将字符串转换为双精度浮点型代码:
double.Parse(string);
注意:要转换的字符串必须是数字的有效表示形式。
如:string 类型的 22 可以转换为 int 类型,string 类型的 name 不可以转换为 int 类型,因为它不是整数的有效表示形式
2.数值型转换为字符串
C# 只要调用 ToString( ) 方法就可以把数值类型转换为字符串类型了
int age = 18;
string myage = age.ToString();
4.2.3、使用 Convert 类进行转换
Parse( ) 方法可以将字符串类型转换为数值型,其实 C# 中还有一个更全能的类——Convert 类,它可以在各种基本类型之间执行数据的相互转换。Convert 类为每种类型转换都提供了一个对应的方法,Convert 类常用的方法如下:
方法 | 说明 |
---|---|
Convert.ToInt32( ) | 转换为整型(int 型) |
Convert.ToSingle( ) | 转换为单精度浮点型(float 型) |
Convert.ToDouble( ) | 转换为双精度浮点型(double 型) |
Convert.ToString( ) | 转换为字符串类型(string 型) |
使用如下:
double myDouble = 85.63; //原始数值
//开始类型转换
myInt = Convert.ToInt32(myDouble); //转换为整数
myFloat = Convert.ToSingle(myDouble); //转换为浮点数
myString = Convert.ToString(myDouble); //转换为字符串型
4.2.3、类型转换总结
1、隐式类型转换
常用于数值型之间,将取值范围小的数值类型转换为取值范围大的数值类型。
2、显式类型转换、
常用于数值型之间,将取值范围大的数值类型转换为取值范围小的数值类型,用法是(xxx)变量或对象
3、Parse()方法
将字符串转换为其他类型,用法为 xxx.Parse(string)
4、Conver 类
任何基本类型之间的相互转换
5 、注意
- 使用 Parse( ) 方法和 Convert 类进行转换的时候,如果转换没有意义,则可能会出错
- Parse( ) 方法不接受 string 类型以外的参数,不然报错,如下:
double myDouble = 85.63; //原始数值
int xh = xh.Parse(myDouble);
本文章属于单纯的学习笔记。 如有错误请及时指出
C# 基础部分以完