目录
字符串
C#中一切都是对象,字符串string 也不例外
先copy一些
常用的方法
方法 | 作用 |
---|---|
Length | 获取字符串的长度,即字符串中字符的个数 |
IndexOf | 返回整数,得到指定的字符串在原字符串中第一次出现的位置 |
LastlndexOf | 返回整数,得到指定的字符串在原字符串中最后一次出现的位置 |
Starts With | 返回布尔型的值,判断某个字符串是否以指定的字符串开头 |
EndsWith | 返回布尔型的值,判断某个字符串是否以指定的字符串结尾 |
ToLower | 返回一个新的字符串,将字符串中的大写字母转换成小写字母 |
ToUpper | 返回一个新的字符串,将字符串中的小写字母转换成大写字母 |
Trim | 返回一个新的字符串,不带任何参数时表示将原字符串中前后的空格删除。 参数为字符数组时表示将原字符串中含有的字符数组中的字符删除 |
Remove | 返回一个新的字符串,将字符串中指定位置的字符串移除 |
TrimStart | 返回一个新的字符串,将字符串中左侧的空格删除 |
TrimEnd | 返回一个新的字符串,将字符串中右侧的空格删除 |
PadLeft | 返回一个新的字符串,从字符串的左侧填充空格达到指定的字符串长度 |
PadRight | 返回一个新的字符串,从字符串的右侧填充空格达到指定的字符串长度 |
Split | 返回一个字符串类型的数组,根据指定的字符数组或者字符串数组中的字符 或字符串作为条件拆分字符串 |
Replace | 返回一个新的字符串,用于将指定字符串替换给原字符串中指定的字符串 |
Substring | 返回一个新的字符串,用于截取指定的字符串 |
Insert | 返回一个新的字符串,将一个字符串插入到另一个字符串中指定索引的位置 |
Concat | 返回一个新的字符串,将多个字符串合并成一个字符串 |
类型转换
C#允许的两种常规的转换方式:隐式类型转换和显式类型转换
1)隐式类型转换
int a = 100;
double d = a; //将int类型转换为double类型
float f = 3.14f;
d = f; //将float类型转换为double类型
2)显式类型转换
double dbl_num = 12345678910.456;
int k = (int) dbl_num ;//此处运用了强制转换
parse方法转换
数据类型 变量二数据类型.Parse(字符串类型的值);
int num = int.Parse(Console.ReadLine());//将输入的这个数字转换为int
Convert 方法转换
数据类型 变量名 = convert.To数据类型(变量名);
float num1 = 82.26f;
int integer;
string str;
integer = Convert.ToInt32(num1);
str = Convert.ToString(num1);
Convert.ToInt16() 转换为整型(short)
Convert.ToInt32() 转换为整型(int)
Convert.ToInt64() 转换为整型(long)
Convert.ToChar() 转换为字符型(char)
Convert.ToString() 转换为字符串型(string)
Convert.ToDateTime() 转换为日期型(datetime)
Convert.ToDouble() 转换为双精度浮点型(double)
Conert.ToSingle() 转换为单精度浮点型(float)
装箱和拆箱(值类型和引用类型)
值类型 | 引用类型 |
---|---|
整型、浮点型、字符型、布尔型、枚举型等 | 类、接口、数组、委托、字符串等 |
值类型->引用类型:装箱
引用类型->值类型:拆箱
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);
//拆箱的过程,是将值类型转换为引用类型,再由引用类型转换为值类型的过程
正则类(Regex类)
由于和js中的reg用法相似,下次有必要再专门写一篇正则的文章吧。。。
数组
C++
类型 标识[ ];
C#
类型[ ] 标识;//C++的定义在C#中是不合法的
定义和初始化
初始化:
//初始化数组中的元素
数据类型[] 数组名 = new 数据类型[长度];
数据类型[] 数组名 = {值 1, 值 2, ...}
数据类型[] 数组名 = new 数据类型[长度]{值 1,值 2,...}
多维数组:
//定义多维数组
数据类型[ , , ...] 数组名;
//创建多维数组并初始化
数据类型[ , , ...] 数组名 = new 数据类型[m,n,...] {{ , , ...},{ , , ...}};
每多一个维度则在定义时的[]中增加一个“,”
double[,] points = { { 90, 80 }, { 100, 89 }, { 88.5, 86 } };
锯齿形数组:
数据类型[][] 数组名 = new 数据类型[数组长度][];
数组名[0] = new 数据类型[数组长度];
int[][] arrays = new int[3][];
arrays[0] = new int[] { 1, 2 };
arrays[1] = new int[] { 3, 4, 5 };
arrays[2] = new int[] { 6, 7, 8, 9 };
/*
1 2
3 4 5
6 7 8 9
*/
foreach循环用法
foreach用于遍历集合中所有元素,有点类似js中for(let i in sth)的遍历方式
如果括号中的整个表达式返回值为 true,foreach 块中的语句就能够执行。
一旦集合中的元素都已经被访问到,整个表达式的值为 false,控制流程就转入到 foreach 块后面的执行语句
class Program
{
static void Main(string[] args)
{
double[] points = { 80, 88, 86, 90, 75.5 };
double sum = 0;
double avg = 0;
foreach(double point in points)
{
sum = sum + point;
}
avg = sum / points.Length;
Console.WriteLine("总成绩为:" + sum);
Console.WriteLine("平均成绩为:" + avg);
}
}
Split 拆分字符串为数组
这和js中的split也同样类似这里简单演示
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个字符串:");
string str = Console.ReadLine();
string[] condition = { "," };
string[] result = str.Split(condition, StringSplitOptions.None);
Console.WriteLine("字符串中含有逗号的个数为:" + (result.Length - 1));
}
}