面向零基础新手的 C# 基础知识 12-13

12

这节课的知识点比较碎。都是由好多个知识点组成的。

12.1

首先讲的是字符串打印输出的时候的问题。

我们在用Console.WriteLine的时候,如果想输出引号怎么办?

这时候就要轮到转义符号出场了:

\

没错就是他,\(除号的反向表示)。只要在引号前加一个\就行了。

例如:

string newstring = "我的\"完美\"数学。";

这样,引号就被转义掉了,直接变成普通文本了。

还有一个问题,我们都知道,C#是无所谓换行的,那么,如果想让文本换行怎么办?

还是我们的老相识 \n 就可以解决了。

有人可能会问,那我要输入\怎么办?

有两种方法,一种是再加一个\再转义一次,例如:

string newstring = "\"\\\"怎么打?";

还有这样,前面加个@:

string newstring = @"\就是这样";

就可以了。

12.2 格式化字符串

我们都知道,Format可以这么用:

string newstring = String.Format("{0} = {0} = {0} + {1} ","first","last");

我以前一直不知道Format有什么用,这次我是知道了他的其他用处了。

12.2.1 Format格式化货币字符串

这个功能主要是在{0}的后面的大括号前加上一个:C(Currency 货币)就能把字符串转换为你当前语言/区域设定中的货币。

例如:

string newstring = String.Format("{0:C}",12450);

这样输出就是

¥12,450.00

12.2.2 Format格式化数字,自动分位

这个功能主要是在{0}的后面的大括号前加上一个:N(不知道啥意思)就能把字符串转换为每三位加一个逗号。

例如:

string newstring = String.Format("{0:N}",12450);

这样输出就是

12,450.00

12.2.2 Format格式化数字,自动分位

这个功能主要是在{0}的后面的大括号前加上一个:N(不知道啥意思)就能把字符串转换为每三位加一个逗号。

例如:

string newstring = String.Format("{0:N}",12450);

这样输出就是

12,450.00

12.2.2 Format格式化数字,自动分位

这个功能主要是在{0}的后面的大括号前加上一个:N(不知道啥意思)就能把字符串转换为每三位加一个逗号。

例如:

string newstring = String.Format("{0:N}",12450);

这样输出就是

12,450.00

12.2.3 Format格式化数字,百分比

这个功能主要是在{0}的后面的大括号前加上一个:P(Percentage 百分比)就能把字符串转换为百分比的形式。

例如:

string newstring = String.Format("{0:P}",12450);

这样输出就是

12,450.00%

12.2.2 Format自定义格式化数字

这个功能主要是在{0}的后面的大括号前加上#号(根据给定格式而定,可以插入其他字符)来添加格式化的形式。

例如:

string newstring = String.Format("电话号码一般长成这样:{0:+#### (###) #####}",008601012345);

这样输出就是

+0086 (010) 12345

12.3 字符串操作

12.3.1 Substring();

此方法主要用于提取子字符串。有两个参数,前面一个参数必选,后面参数可选。前面的意义在于提取该位置后的字符串,后面位置意义在于提取字符串长度,默认到结尾。

例如:

string newstring = " 热烈欢迎克莱登大学优秀毕业生 方鸿渐·ace 博士莅临我国立米库大学参观! ";
newstring = newstring.Substring(3);

输出是:

欢迎克莱登大学优秀毕业生 方鸿渐·ace 博士莅临我国立米库大学参观!

例如:

string newstring = " 热烈欢迎克莱登大学优秀毕业生 方鸿渐·ace 博士莅临我国立米库大学参观! ";

newstring = newstring.Substring(5,5);

输出为:

克莱登大学

12.3.2 ToUpper();

这个函数就是字面意思,把字符转换成大写字母。

例如:

  string newstring = " 热烈欢迎克莱登大学优秀毕业生 方鸿渐·ace 博士莅临我国立米库大学参观! ";

newstring = newstring.ToUpper();

输出是:

热烈欢迎克莱登大学优秀毕业生 方鸿渐·ace 博士莅临我国立米库大学参观!

12.3.3 Remove();

用法和SubString差不多。

例如:

string newstring = " 热烈欢迎克莱登大学优秀毕业生 方鸿渐·ace 博士莅临我国立米库大学参观! ";
newstring = Remove(19,4);

输出:

热烈欢迎克莱登大学优秀毕业生 方鸿渐 博士莅临我国立米库大学参观!

例如:

string newstring = " 热烈欢迎克莱登大学优秀毕业生 方鸿渐·ace 博士莅临我国立米库大学参观! ";
newstring = Remove(19);

输出:

热烈欢迎克莱登大学优秀毕业生 方鸿渐

12.3.4 Trim();

和PHP差不多 去除空格。不演示了。值得注意的是,C#还提供了头尾去空格的方法,请自行寻找。

12.4 字符串操作的高效率方法

通常,要操作字符串,我们都会简单的写一个循环。就像这样:

for (int i = 0; i < 100; i++)
{
newstring+=" -- " + i.ToString();
}

但是,Bob说了,这样操作会让我们的系统资源大量浪费。实际上,+=操作在底层是这样的:首先,由于String在底层代码中是不变的定量,所以,想要改变他,只能先存储到内存中,在删除该字符串,再新建一个同名字符串储存增加过的字符。这样的操作费时费力。所以,C#中提供了一个类StringBuilder,用来快速操作字符串。(至于类的定义,Bob说以后再说)

例如这里:

StringBuilder builder = new StringBuilder();

//实例化StringBuilder类
builder.Append(newstring);
for (int i = 0; i < 100; i++)
{
builder.Append("--");

//StringBuilder固有操作,类似+=
builder.Append(i);

//注意啦!这里就不用转字符串了!因为Append的重载有int类型的了!
}

打开一对比,之前是42MB,弄完是7MB。、

好了,下节课是日期。

13

这节课……我就不自己打了,主要是太形象了,我就把网上的介绍拉来了。

当前日期时间的获取:

DateTime datetime1=DateTime.Now;

日期时间的运算:

string str1=(datetime1.AddYears(1)).ToString(); //加年份

string str1=(datetime1.AddMonths(1)).ToString();//加月份

string str1=(datetime1.AddDays(1)).ToString();//加日期

string str1=(datetime1.AddHours(1)).ToString();//加小时

string str1=(datetime1.AddMinutes(1)).ToString();//加分

string str1=(datetime1.AddSeconds(1)).ToString();//加秒

string str1=(datetime1.AddMilliseconds(1)).ToString();//加毫秒
long long1=System.DateTime.DaysInMonth(2005,2); //返回某年某月有几天

string str1=datetime1.DayOfWeek.ToString("D"); //将星期转换成数字字符 星期日为0

TimeSpan subtime=datetime1.Subtract(datetime2); //获得datetime1和datetime2之间的间隔,具体时间可以从subtime中分离出来。

具体时间的分离:

long long1=datetime1.Year;//取得年份
long long1=datetime1.Month;//取得月份
long long1=datetime1.Day;//取得日期
long long1=datetime1.Hour;//取得小时
long long1=datetime1.Minute;//取得分
long long1=datetime1.Second;//取得秒
long long1=datetime1.Millisecond;//取得毫秒

▲注:取负数是减

创建时间变量的三种方法:

1.DateTime time = DateTime.Now; (类)(Bob说,以后再讲)

2.DateTime time = DateTime.Parse("1945/5/20");

3.DateTime myValue = new DateTime(1969, 12, 7) ;

时间相减:

.Substract();

计算时间间隔

TimeSpan.Totaldays

futa: