【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
**开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **
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、数值类型与字符串之间的转换
隐式类型转换和显式类型转换一般都用在数值类型数据之间,并不适用于数值类型和字符串之间的转换。