menu 二七小站
C#第九章
187 浏览 | 2020-04-08 | 阅读时间: 约 4 分钟 | 分类: 代码教程,学习日常 | 标签: C#,程序员,编程,秃头小技巧,学习
请注意,本文编写于 88 天前,最后修改于 61 天前,其中某些信息可能已经过时。

枚举


问:啥是枚举?
答:

枚举是一种数据类型,通常用来表达一种可选择的状态,并且这些状态是可以被枚举的。
例如:电灯 有 开和关 两种状态。

问:枚举有啥特征?
答:

1) 地位:即可以将之定义在命名空间下边,也可以定义在类中。

2) 使用:可以定义变量、可以用作为方法的参数。

问:枚举咋定义啊?
答:

使用 enum 关键字来定义枚举

格式:
enum 枚举名称
{

值1,值2,值3...;

}

enum WeekMode
{
    周一,周二,周三,周四,周五,周六,周日
}

问:枚举咋用啊?
答:
格式:
枚举名称 名称=枚举名称.枚举值;
用的时候直接输出名称就行。

Week weekMode=Week.周三;
Console.WriteLine(weekMode);

枚举的值本质上是整数,因而可以和 int 进行互转。
转换也很简单:

Week weekMode=Week.周三;
int weekMode1=(int)weekMode;

这样输出的weekMode1就是整型了。
值得一提的是,输出的整型,其实就是枚举值的下标,比如上面输出的周,对应输出的整型就是0,1,2,3,4,5,6;

枚举通常以以下单词作为后缀:

1) State:状态
2) Level:等级
3) Mode:模式


字符串


说完枚举,来说说字符串。

在C#中,通常有这几种定义字符串的方式:

string a = "张三 李四";//使用频率最高
char[] arr = new char[] {'张','三','李','四' };
string b = new string(arr);//不常用
string c = new string('张',5);//输出5个张 偶尔用

String中有一个可以输出字符串长度的属性,那就是Length,它可以输出字符串的数量,包括空格标点符号:

string len="捡咸鱼的二七";
Console.WriteLine(len.Length);

比较:字符串中比较有两种方法==Equals();
他们都可以比较字符串里的内容是否相同,但后者功能更多,
比如:

string a = "abc";
bool b = a.Equals("Abc",StringComparison.CurrentCultureIgnoreCase);
Console.WriteLine(b);

最后输出的结果是True,为什么呢,因为Equals()里带入了一个属性

StringComparison.CurrentCultureIgnoreCase

这个可以忽略字符串里字母的大小写,所以"abc"和"Abc"比较会输出True。

转换:转换这里有3种方法
第一个就是之前用的Parse()方法;

int a=int.Parse("123");

这个可以将字符串类型转化为整数类型(string-->int)
当然,转化的内容需要是数字,不然会报异常。
我们不想看到异常咋整?这就讲到了第二个转换方法:
TryParse();

用这个方法后,如果能转就会返回转化后的值,如果不能就会返回0,它其实返回的是布尔值;不信的话可以用if结构来试一下。
例子:

int b;
bool a = int.TryParse("123", out b);
//这里用if结构来输出
if (a)
{
    Console.WriteLine(b);
}
else
{
    Console.WriteLine(222);
}

除了这两个,还有一种转换方法:Convert(这个了解下就行)
使用方法:

string strA = "66.66";
string strB = "66";
string strC = "true";

double strToDou = Convert.ToDouble(strA);
int strToInt= Convert.ToInt32(strB);
bool strToBol = Convert.ToBoolean(strC);

说了这么多转换方法,难道就没有转化为String的方法吗?当然有,ToString()就可以实现。

int i = 100;
double dou = 66.66;
bool bol = true;
char cha = '六';

string strI = i.ToString();
string strDou = dou.ToString();
string strBol = bol.ToString();
string strCha = cha.ToString();

从上面的例子不难发现,任何数据类型都可以用String()转化为String类型(String真好用)。

string除了转换,还有许多方法可以用,如下:

string a = "张三 李四, 王五";
/*查询是否包含指定值*/
//bool a1 = a.Contains("张三");
/*查询是否以指定内容开头*/
bool a2 = a.StartsWith("李四");
/*查询是否以指定内容结尾*/
bool a3 = a.EndsWith("王五");
/*查询指定内容在字符串中的位置*/
int a4 = a.IndexOf("张三");
/*查询指定内容在字符串中最后出现的位置*/
int a5 = a.LastIndexOf("张三");
/*从指定下标开始截取到最后的子串*/
string a6 = a.Substring(3);
/*从指定下标开始截取到指定下标*/
string a6 = a.Substring(3,6);
/*用指定内容替换子串中的指定内容为空串*/
string a7 = a.Replace("张三", "李三");
/*将指定内容插入到指定下标的位置*/
string a8 = a.Insert(3, "赵六");
/*----------------------------------------*/
string a = " To m ";
//去除前后空格
string a1 = a.Trim();
//去除前空格
string a2 = a.TrimStart();
//去除后空格
string a3 = a.TrimEnd();
//若 a1 长度不够 8,则前补空格使总长度等于 8(在左侧补空格)
string a4 = a1.PadLeft(8);
//若 a1 长度不够 8,则后补空格使总长度等于 8(在右侧补空格)
string a5 = a1.PadRight(8);
//判断是是否为空
bool a6 = string.IsNullOrEmpty(a);
//判断是否为 null 或空格
bool a7 = string.IsNullOrWhiteSpace(a);
//将 a 转换成 char[]存储在 chs 中
char[] chs = a.ToCharArray();
//从 a 的下标 1 开始,取 3 个字符放到
cs 数组的 0 下标开始的位置
char[] cs = new char[5];s.CopyTo(1, cs, 0, 3);
//从 s 中从前向后检索'二'或'七',返回首次检索到的下标
int ioa =s.IndexOfAny(new char[] {'二','七' });
//从 s 中从后向前检索'二'或'七',返回首次检索到的下标
int lioa = s.LastIndexOfAny(new char[] { '二', '七' });

string还有一个分割方法Split:

String name = "王五#李四#张三";
//用#做分割符号
String[] arr = name.Split(new string[] { "#" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string item in arr)
{
    Console.WriteLine(item);
}

啊啊啊,东西好多

说完了String的方法,接下来说下String的格式化Format
格式化字符串非常重要,它包括两方面的应用:

1) 拼接复杂格式的字符串
2) 输出数字的特定格式

它的使用方法和之前在输出时用的{0}{1}{2}...差不多,
举个栗子:

int a = 1;
int b = 2;
int c = 3;
string abc = string.Format("编号:{0}---数量:{1}---价格{2}",a,b,c);
Console.WriteLine(abc);

其中a,b,c的值都是可变的,不用再删改,挺方便的,Format还能用在SQL语句中,因为太长,我就不写了,我知道你会

终于剩下最后一个了,StringBuilder
这个是用于字符串的动态拼接,不会造成字符串碎片,可以避免 String 在大批量拼接时,造成占据大量内存的问题。

String:

StringBuilder:


完结,撒花,睡觉

转载请标明出处

发表评论

email
web

全部评论 (共 1 条评论)

    2020-05-06 09:51
    布好好来看看