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 返回新字符串,将多个字符串合并成字符串
C#获取字符串长度(string.Length)
获取字符串的长度,使用Length获取属性的方法如下:
字符串.Length
- IndexOf 该方法获得了指定字符串在原字符串中首次出现的位置
- LastlndexOf 方法是指定字符串最后一次出现在搜索的字符串中
- 需要注意的是,字符串中每个字符的位置来自 0 开始的
- 无论采用哪种方法,只要找到的字符串中没有指定的字符串,结果都是 -1。
class Program {
static void Main(string[] args) {
string str = Console.ReadLine(); if (str.IndexOf("@") != -1) {
Console.WriteLine("字符串中含有@,其出现位置为{0}", str.IndexOf("@") 1); } else {
Console.WriteLine("不含字符串@"); } } }
C# Replace:字符串替换函
class Program {
public static void Mian(string[] args)
{
string str = "aaa,bbb,ccc";
if (str.IndexOf(",") != -1)
{
str = str.Replace(",", "_");
}
Console.WriteLine("替换后的字符串为:" + str);
Console.ReadLine();
}
}
C# Substring:字符串截取函数
- Substring(指定位置); //从字符串中的指定位置开始截取到字符串结束
- Substring(指定位置, 截取的字符的个数); //从字符串中的指定位置开始截取指定字符个数的字符
//要求:邮箱中仅含有一个 @,然后截取邮箱中的用户名输出
string str = "abc@qq.com";
int firstIndex = str.IndexOf("@"); //下标从 0 开始算,firstIndex 为 3
int lastIndex = str.LastIndexOf("@"); //下标从 0 开始算,lastIndex 为 3
if(firstIndex != -1 && firstIndex == lastIndex)
{
str = str.Substring(0, firstIndex);
}
Console.WriteLine("邮箱中的用户名是:" + str);
Console.Read();
C# Insert:字符串插入
//将‘@@@’插入到字符串的第 2 个字符的位置
string str = "abcdef";
str = str.Insert(1, "@@@");
Console.WriteLine("新字符串:" + str);
Console.Read();
C#数据类型转换
- 这些转换是 C# 默认的以安全方式进行的转换,不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
- 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
- ToBoolean 如果可能的话,把类型转换为布尔型。
- ToByte 把类型转换为字节类型。
- ToChar 如果可能的话,把类型转换为单个 Unicode 字符类型。
- ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构。
- ToDecimal 把浮点型或整数类型转换为十进制类型。
- ToDouble 把类型转换为双精度浮点型。
- ToInt16 把类型转换为 16 位整数类型。
- ToInt32 把类型转换为 32 位整数类型。
- ToInt64 把类型转换为 64 位整数类型。
- ToSbyte 把类型转换为有符号字节类型。
- ToSingle 把类型转换为小浮点数类型。
- ToString 把类型转换为字符串类型。
- ToType 把类型转换为指定类型。
- ToUInt16 把类型转换为 16 位无符号整数类型。
- ToUInt32 把类型转换为 32 位无符号整数类型。
- ToUInt64 把类型转换为 64 位无符号整数类型。
C#隐式数据类型转换
- 隐式转换主要是在整型、浮点型之间的转换,将存储范围小的数据类型直接转换成存储范围大的数据类型。
int a = 100;
double d = a; //将int类型转换为double类型
float f = 3.14f;
d = f; //将float类型转换为double类型
C#强制数据类型转换
- 强制类型转换主要用于将存储范围大的数据类型转换成存储范围小的,但数据类型需要兼容。
- 这里要求等号左、右两边的数据类型是一致的。例如将 double 类型转换成 int 类型,代码如下。
double dbl_num = 12345678910.456;
int k = (int) dbl_num ;//此处运用了强制转换
C# Parse方法:字符串类型转换
- Parse 方法用于将字符串类型转换成任意类型,具体的语法形式如下。
- 这里要求等号左、右两边的数据类型兼容。
//从控制台输入 3 个数,并将其中的最大数输出
Console.WriteLine("请输入三个数字:");
int num1 = int.Parse(Console.ReadLine());
int num2 = int.Parse(Console.ReadLine());
int num3 = int.Parse(Console.ReadLine());
int maxvalue = num1;
if(num2 > maxvalue)
{
maxvalue = num2;
}
if(num3 > maxvalue)
{
maxvalue = num3;
}
Console.WriteLine("三个数中最大的值是:" + maxvalue);
Console.ReadLine();
C# Convert方法:数据类型转换
- Convert 方法是数据类型转换中最灵活的方法,它能够将任意数据类型的值转换成任意数据类型,前提是不要超出指定数据类型的范围。
- 这里 Convert.To 后面的数据类型要与等号左边的数据类型相匹配。
- Convert.ToInt16() 转换为整型(short)
- Convert.ToInt32() 转换为整型(int)
- Convert.ToInt64() 转换为整型(long)
- Convert.ToChar() 转换为字符型(char)
- Convert.ToString() 转换为字符串型(string)
- Convert.ToDateTime() 转换为日期型(datetime)
- Convert.ToDouble() 转换为双精度浮点型(double)
- Conert.ToSingle() 转换为单精度浮点型(float)
//使用 Convert 方法将分别将一个浮点型数据转换成整型和字符串型。
float num1 = 82.26f;
int integer = Convert.ToInt32(num1);
string str = Convert.ToString(num1);
Console.WriteLine("转换为整型数据的值 {0}", integer);
Console.WriteLine("转换为字符串 {0}", str);
Console.Read();
C#装箱和拆箱(值类型和引用类型)
- ToString 方法用于将任意的数据类型转换成字符串类型,例如将整数类型转换成字符串类型。
int a=100;
string str=a.ToString(); //装箱操作
//整型变量 a 即可被转换成字符串类型
- 数据类型分为值类型和引用类型,将值类型转换为引用类型的操作称为装箱,相应地将引用类型转换成值类型称为拆箱。
a=int.Parse(str); //拆箱操作
//利用装箱和拆箱功能,可通过允许值类型的任何值与 Object 类型的值相互转换,将值类型与引用类型链接起来
//这是一个装箱的过程,是将值类型转换为引用类型的过程
int val = 100;
object obj = val;
Console.WriteLine("装箱对象的值 = {0}", obj);
//这是一个拆箱的过程,是将值类型转换为引用类型,再由引用类型转换为值类型的过程
int val2 = 200;
object obj2 = val2;
int num = (int)obj2;
Console.WriteLine("拆箱num:{0}", num);
Console.Read();
C#正则表达式(Regex类)
- 1 . 匹配除换行符以外的所有字符
- 2 \w 匹配字母、数字、下画线
- 3 \s 匹配空白符(空格)
- 4 \d 匹配数字
- 5 \b 匹配表达式的开始或结束
- 6 ^ 匹配表达式的开始
- 7 $ 匹配表达式的结束
- 1 * 0次或多次字符
- 2 ? 0次或1次字符
- 3 + 1次或多次字符
- 4 {n} n次字符
- 5 {n,M} n到M次字符
- 6 {n, } n次以上字符
- 例如使用正则表达式来验证身份证信息,第一代身份证是由 15 个数字构成的,第二代身份证是由 18 个数字构成的,正则表达式可以写成 \d{15}|\d{18}。
- 在 C# 语言中使用正则表达式时要用到 Regex 类,该类在 System.Text.RegularExpressions 名称空间中。
//题目要求,在本例中邮箱验证的正则表达式的写法是包含 @,
//在 @ 前面是字母或者数字、下画线,在 @ 后面也是字母或者数字、下画线,
//并且字母后面要含有.,在 . 后面还要加上字母或者数字、下画线。具体的代码如下。
Console.WriteLine("请输入一个邮箱:");
string email = Console.ReadLine();
Regex regex = new Regex(@"^(\w)+(\.\w)*@(\w)+((\.\w+)+)$");
if(regex.IsMatch(email))
{
Console.WriteLine("你输入的邮箱格式正确。");
}
else
{
Console.WriteLine("你输入的邮箱格式错误。");
}
Console.Read();