Web应用的字符(串)处理(C#)

Web应用的字符(串)处理(C#)

一、             字符(串)的编码

1、  Unicode / ANSI

我们要把文件和网页内部头信息中声明的编码采用同样的方式

涉及到国际化,推荐使用Unicode(即UTF-8

 

2、  HtmlEncodehtml编码) / HtmlDecodehtml解码)

&lt;P&gt;  / <P>

 

3、  UrlEncodeurl编码) / UrlDecodeurl解码)

%E6%88%91%E4%BB%AC / 我们(Unicode

%CE%D2%C3%C7 / 我们(GB-2312

 

二、             字符(串)的格式化

1、  格式化概述

http://msdn.microsoft.com/zh-cn/library/26etazsy(VS.80).aspx

 

2、  数字的格式化

CDEFGNPRX……

int i = 123;

Console.WriteLine(i.ToString("C3"));    // 123.000

 

http://msdn.microsoft.com/zh-cn/library/427bttx3(v=VS.80).aspx

 

3、  日期和时间的格式化

ORsu;

yMdhHmstTfF……

 

DateTime nowTime = DateTime.Now;

Console.WriteLine(nowTime);     // 2010/7/15 21:26:07

Console.WriteLine(nowTime.ToString("yyyy-MM-dd"));  // 2010-07-15

Console.WriteLine(nowTime.ToString("yyyy-MMM-dd")); // 2010-七月-15

Console.WriteLine(nowTime.ToString("yyyy-MM-dd hh:mm:ss")); // 2010-07-15 09:29:28

Console.WriteLine("{0}将在{1}到达北京", "clh", DateTime.Now);   // clh将在2010/7/15 21:33:15到达北京

Console.WriteLine("{0}将在{1:yyyyMMdd}到达北京", "clh", DateTime.Now);    // clh将在20100715日到达北京

Console.WriteLine(nowTime.ToString("ddd"));     //

Console.WriteLine(nowTime.ToString("dddd"));    // 星期三

 

http://msdn.microsoft.com/zh-cn/library/97x6twsz(v=VS.80).aspx

 

4、  枚举的格式化

G/gF/fD/dX/x

DayOfWeek myDays = DayOfWeek.Wednesday;

Console.WriteLine(myDays.ToString("G"));        // Wednesday

Console.WriteLine(myDays.ToString("F"));        // Wednesday

Console.WriteLine(myDays.ToString("D"));        // 3

Console.WriteLine(myDays.ToString("X"));        // 00000003

 

http://msdn.microsoft.com/zh-cn/library/c3s1ez6e(v=VS.80).aspx

 

5、  自定义的格式化

{}/; . 0#......

 

http://msdn.microsoft.com/zh-cn/library/0asazeez(v=VS.80).aspx

 

6、  复合格式化

String.FormatAppendFormatWriteLineTextWriter.WriteLine

 

http://msdn.microsoft.com/zh-cn/library/txafckwd(v=VS.80).aspx

 

三、             字符(串)的常规处理

1、  字符串的连接、拆分

String.Split                  将字符串拆分为字符串数组

         可以给Split()传递多个分隔符

           string s = "I have a dream,to,world.car !";

     string[] wordArray = s.Split(' ', ',', '.');

String.Join                            将字符串数组连接成字符串

string+string              字符串相加

StringBuilder              字符串构造器

 

简单的字符串相加用string+string,复杂字符串相加用StringBuilder

 

2、  类型转换

A、 Parse

B、 TryParse(返回是否转换成功,True表示转换成功,False表示转换失败)

 

3、  内容分析、处理、比较

A、 判断字符串为空

只是单单的判断值为空的话,用string.Empty

要同时判断值为空和为null时,用string.IsNullOrEmpty 或者 a.Length > 0

B、 判断字符串以***开始或结束

string a = "-*$123456*-$";

Console.WriteLine(a.StartsWith("-&"));      // False

Console.WriteLine(a.EndsWith("-$"));        // True

C、 去除边沿字符

string a = "-*$123456*-$";

Console.WriteLine(a.Trim("-*$".ToCharArray()));     // 123456

D、 不区分大小写的比较是否相同

转换为小写函数:s1.ToLower()

转换为大写函数:s2.ToUpper()

C#底层对变成大写做了一个优化,如果转大写/小写,优先选择大写

 

不区分大小写的比较还可以用:string.Compare(s2, s1, true)
true
表示不区分大小写;false表示区分大小写

0表示相等,不为0表示不相等

其底层其实是用ToUpper()实现的

 

E、  其他常用方法:

Replace()替换

            string s2 = s1.Replace("dream", "money");

String.Substring:取子字符串

                  string s1 = "1234567";

                  string s2 = s1.Substring(2);     // 34567

                  string s3 = s1.Substring(2, 2);  // 34    从第几位开始,取几个

Contains():是否含有某个子串

      string s1 = "12345";

      bool b = s1.Contains("127");    // False

String.IndexOf:判断某个子字符串在字符串中第一次出现的位置(从左开始记)

                  string s1 = "123456";

                  int i1 = s1.IndexOf("12");       // 0

                  int i2 = s1.IndexOf("x");       // -1

String.LastIndexOf:判断某个子字符串在字符串中最后一次出现的位置

                  string s1 = "56123456";

                  int i1 = s1.LastIndexOf("56");       // 6

      int i2 = s1.LastIndexOf("x");       // -1

PadLeft():字符串左边补足

      string s1 = "123";

      string s2 = s1.PadLeft(5, '#');      // ##123

PadRight():字符串右边补足

      string s1 = "123";
      string s3 = s1.PadRight(5, '#');    // 123##

String.Remove删除此字符串中从指定位置到最后位置的所有字符。

string s = "abc---def";

Console.WriteLine("Index: 012345678");              // Index: 012345678

Console.WriteLine("1)     {0}", s);                 // 1)     abc---def

Console.WriteLine("2)     {0}", s.Remove(3));       // 2)     abc

Console.WriteLine("3)     {0}", s.Remove(3, 3));    // 3)     abcdef

 

四、             正则表达式的基本使用

1、  语法

2、  多练

3、  RegexTester.exe:正则表达式工具,可以生成正则表达式代码

4、  几个特殊的正则表达式

汉字:[/u4e00-/u9fa5]+

双字节字:[/x00-/xff]+

全角:[/uFF00-/uFFFF]

日期、IP地址等,需要总结

5、  Regular Expression Library

http://regexlib.com

 

五、             其他

1、  字符与字符串

char c = 't';

string s = "tom";

char类型是字符类型,表示一个字符,用单引号,可以是't'''

string类型是字符串类型,表示一个字符串,用双引号

 

string可以看做是char的只读数组

string s = "tom";

char c = s[0];

 

2、  给一个字符串加上双引号,两种做法:

sArray[i] = '"' + sArray[i] + '"';

sArray[i] = "/"" + sArray[i] + "/"";

 

3、  C#每句是以;结尾的,故一句代码可以回车,但是应该是在运算符处回车,而不能拆分关键字

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值