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