字符类与字符串类(及其常用方法举例) (1)

在学习字符和字符串之前,先了解一下ASCII和Unicode。

 

字符的ASCII和Unicode码:

1,认识:

ASCII:计算机中最常使用的计算机编码符号,所支持的是英文国家支持的英文字母、阿拉伯数字、和英文符号。不支持其他国家语言。

 

具体一点说:

ASCII是用来表示英文字符的一种编码规范,每个ASCII字符占用1个字(8bits)。因此,ASCII编码可以表示的最大字符数是256,其中包括了控制字符、数字、大小写字母和其他一些符号

(注:其实英文字符并没有那么多,一般只用前128个(最高位为0))

 

这种字符编码规范显然只能用来处理英文(也可以处理法文、德文等一些西欧字符,但是不能喝英文通用),但是对于像中文、阿拉伯文这样的复杂的文字,255个字符肯定不够用。

 

于是,很多国家制定了自己的文字编码规范。问题是:这些编码规范并不统一。

 

逐渐的,Unicode编码规范诞生了。

 

Unicode(统一的编码):是一种字符编码规范。编码体系中可以包含很多字符,足以包含大部分国家的应用字符。

 

2,两者之间的转换

(1)例子:

namespace Ascii与unicode之间的转换
{
    class Program
    {
        static void Main(string[] args)
        {
            char ch = 'a';
          
            Console .WriteLine ("ASCII码:"+ch +"强制转换成short后为:"+(short )ch );
            short ii=65;
            Console .WriteLine ("short型变量"+ii + "强制转换成char后为:"+(char) ii );

            char cn = '中';
            Console.WriteLine ("在Unicode编码中" + "”"+ cn + "”" +"是"+(short )cn );

            short uc=22478;
            Console .WriteLine ("short变量:"+uc +"强制转换成char后为"+"“"+(char )uc +"”");
        }
    }
}

 

运行结果:

 

 

接下来介绍一下本章的一些重点知识。

1,字符类常用方法(举例);

2,字符串类常用方法(举例);

3,可变字符串类常用方法(举例);

 

4,字符串和字符数组之间的转换(举例);

5,StringBuilder类与String类的区别(叙述);

 

 以下是我做的一些例子,希望能帮助大家理解:

 

1,字符类常用方法

namespace char的常用方法
{
    class Program
    {
        static void Main(string[] args)
        {
            char a = 'a';
            char b = '3';
            char c = 'L';
            char d = '.';
            char e = 'l';
            char f = ' ';
            
            //使用isLetter方法判断a是否为字母
            Console.WriteLine("isLetter方法判断a是否为字母:{0}", char.IsLetter(a));

            //使用isDigit方法判断b是否为数字
            Console.WriteLine("isDigit方法判断b是否为数字:{0}", char.IsDigit(b));

            //使用isLetterOrDigit方法判断c是否为字母或数字
            Console.WriteLine("isLetterOrDigit方法判断c是否为字母或数字:{0}", char.IsLetterOrDigit(c));

            //使用isLower方法判断a是否为小写字母
            Console.WriteLine("isLower方法判断a是否为小写字母:{0}", char.IsLower(a));

            //使用isUpper方法判断c是否为大写字母
            Console.WriteLine("isUpper方法判断c是否为大写字母:{0}", char.IsUpper(a));

            //使用isPunctuation方法判断d是否为标点符号
            Console.WriteLine("isPunctuation方法判断d是否为标点符号:{0}", char.IsPunctuation(d));

            //使用isSeparator方法判断e是否为分隔符
            Console .WriteLine ("isSeparator方法判断e是否为分割符:{0}",char .IsSeparator (e ));

            //使用isWriteSpace方法判断f是否为空白
            Console .WriteLine ("isWriteSpace方法判断f是否为空白:{0}",char .IsWhiteSpace (f ));
            Console .ReadLine ();



        }
    }
}

运行结果:



2,(1)使用Compare方法比较两个字符串是否相等

namespace 字符串常用方法
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1="我想吃苹果";
            string  str2="我们去运动吧";
          
            //使用Compare方法比较两个字符串是否相等
            Console.WriteLine(string.Compare(str1, str2));
            Console.WriteLine(string.Compare(str2, str1));
            Console.WriteLine(string.Compare(str1, str1));
            Console.ReadLine();
        }
    }
}

运行结果:

 

 

(2)使用Format方法将字符串格式化为指定格式

namespace 字符串常用方法2_Format_
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1 = "我喜欢吃苹果";
            string str2 = "你知道吗";

            string newstr = string.Format("{0},{1}!!!", str1, str2);

            Console.WriteLine(newstr);
            Console.ReadLine();
        }
    }
}

运行结果:

 

 

3,

namespace StringBuilder类常见方法
{
    class Program
    {
        static void Main(string[] args)
        {
            int Num = 1000;
            StringBuilder Ls=new StringBuilder ("我喜欢吃苹果",100);

            //使用Append方法将字符串追加到LS的末尾
            Ls .Append ("AND 大鸭梨");
            Console .WriteLine (Ls);

            //使用AppendFormat方法将字符串按照指定的格式追加到LS的末尾
            Ls .AppendFormat ("{0:C}",Num );
            Console .WriteLine (Ls);

            //使用Insert方法将“爱好:”追加到LS开头
            Ls.Insert (0,"爱好:");
            Console .WriteLine (Ls);

            //使用Remove方法从LS中删除索引10以后的字符串
            Ls .Remove (10,Ls.Length -10);
            Console .WriteLine (Ls);

            //使用Replace方法将“爱好:”替换为“毕生追求:”
            Ls.Replace ("爱好:","毕生追求:");
            Console .WriteLine (Ls);
            Console .ReadLine ();
        }
    }
}

运行结果:
 

 

4,(1)字符串到字符数组的转换

namespace 字符串和字符数组之间的转换
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "mytest";
                     
                            //使用ToCharArray()方法实现字符串到字符数组的转换
            char[] chars = str.ToCharArray();
            Console.WriteLine("mytest的长度是" + str.Length);
            Console.WriteLine("转换成chars字符串数组后长度是:" + chars.Length);
            Console.WriteLine("char[2]=" + chars[2]);

        }
    }
}

运行结果:

 

 

(2)字符数组转换成字符串

namespace 字符串与字符数组之前的转换2
{
    class Program
    {
        static void Main(string[] args)
        {
            char[] tcs = { 't', 'e', 's', 't', ' ', 'm', 'e' };
            string tstr = new string(tcs);
            Console.WriteLine("tstr= \"" + tstr + "\"\n");

        }
    }
}
 
运行结果:

 

5,StringBuilder类与String类的区别

String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为新对象分配新的空间.

在需要对字符串进行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵.

如果要修改字符串而不创建新的对象,则可以使用StringBuider类.例如当在一个循环中将许多字符串连接在一起时,使用StringBuilder提高性能。

 

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值