您当前的位置: 首页 >  ui

C#OOP之十五 String类&StringBuilder类

发布时间:2016-05-02 09:20:57 ,浏览量:0

String类的概述

初次看到String这个词,大家应该都很熟悉。有的同学就会想到:它不就是C#中的一个关键字吗?我们已经接触过了啊,它就是一个数据类型而已,能有何大用?也有细心的同学会发现:这个String中的S是大写的,而string中的s是小写。呵呵……不错,“慧眼识英雄”!你想知道此“String”与彼“string”到底存在着什么关系吗?你想知道他们的区别吗?你想了解它们背后的东西吗?那就停下猜疑,我们一起来揭开“String&&string”的神秘面纱。

String类的概述

 .NE T Framwork中表示字符串的关键字为string,它是String类的别名。string类型表示Unicode字符的字符串。String类类似于string类型,但是功能更强。虽然String类功能很强,它也是不可改变的,这就是说一旦创建String对象,就不能够修改。表面看来能够修改字符串的所有方法实际上不能够修改。它们实际上返回一个根据所调用的方法修改的新的String。当需要大量的修改时,可使用StringBuilder类。

String类的使用

 

String对象是System.Char对象的有序集合,用于表示字符串。String对象的值是该有序集合的内容,并且该值是不可变的。正是字符构成了字符串,根据字符在字符串中的不同位置,字符在字符串中有一个索引值,可以通过索引值获取索引中的某个字符。字符在字符串中的索引从0开始。

例1:创建一个控制台应用程序,声明一个字符串变量,然后获取字符串中的某个字符。

using System;

using System.Collections.Generic;

using System.Text;

namespace Text

{

    classProgram

    {

        staticvoid Main(string[] args)

        {

            stringStr1 = "听过刘若英的歌吗?";

            charStr2 = Str1[1];

            charStr3 = Str1[2];

            Console.WriteLine("字符串Str1中的第二个字符是: {0}", Str2);

            Console.WriteLine("字符串Str1中的第三个字符是: {0}", Str3);

            Console.ReadLine();

        }

    }

}

运行结果:

1.在String类下,最常见的比较字符串的方法有Compare,CompareTo和Equals等方法。

1.Compare方法用于比较两个字符串是否相等,它有很多个重载方法,其中最常用的两种方法如下:

Int compare(string strA,strin strB)

Int compare(string strA,strin strB,bool ignorCase)

批注:strA,strB代表要比较的两个字符串;ignorCase是一个bool类型的参数,如果这个参数的值为True,那么在比较字符串时就忽略大小写的差别。

Compare方法是一个静态方法,所以在使用时,可以直接使用。

例1.1:

      static voidMain(string[]args)

        {

            stringStr1 = "听过刘若英的歌吗?";

            stringStr2 = "知道不知道……讲述一段爱情的故事……?";

            Console.WriteLine(String.Compare(Str1, Str2));

            Console.WriteLine(String.Compare(Str1, Str1));

            Console.WriteLine(String.Compare(Str2, Str1));

            Console.ReadLine();

        }

运行结果:

-1

0

1

注意:比较字符串并非比较字符串长度的大小,而是比较字符串在英文字典中的位置(在英文词典中,排在前面的单词小于后面的单词)。

2.CompareTo方法

CompareTo方法和Compare方法相似,都可以比较两个字符串是否相等,不同的是CompareTo方法以实例对象本身与指定的字符串作比较,语法如下“

Public int CompareTo(string strB)

例1.2:

 static void Main(string[] args)

        {

            stringStr1 = "越单纯,越幸福";

            stringStr2 = "一千零一个愿望";

            Console.WriteLine(Str1.CompareTo(Str2));//输出比较后的返回值:如果值相等则返回,如果Str1> Str2则返回,否则返回-1;

            Console.ReadLine();

        }

3.Equals方法

用于比较两个字符串是否相同,如果相同则返回True,否则,返回False

例1.3:

static voidMain(string[]args)

        {

            stringStr1 = "越单纯,越幸福";

            stringStr2 = "一千零一个愿望……";

            Console.WriteLine(Str1.CompareTo(Str2));

            Console.WriteLine(String.Equals(Str1, Str2));

            Console.ReadLine();

           }

运行结果:

1

False

2. 在C#中,String类提供了一个静态的Format方法,用于将字符串数据格式化成指定的格式,语法如下:

Public static stringFormat(string format,object obj);

format:用来指定字符串所要格式化的形式;

obj:要被格式化的对象。

例2.1:

static voidMain(string[]args)

           {

             string Str1 = "越单纯,越幸福";

             string Str2 = "一千零一个愿望";

             string newstr=String.Format("{0},{1}!!!", Str1, Str2);//格式化字符串

             Console.WriteLine(newstr);

             Console.ReadLine();

           }

运行结果:

越单纯,越幸福 一千零一个愿望

 在C#中已经提供的用于日期时间的格式规范,具体如下:

格式规范

                    说明

d

简短日期格式(YYYY-MM-dd)

D

    完整日期格式(YYYY年MM月dd日)

t

    简短时间格式(hh:mm)

T

    完整时间格式(hh:mm:ss)

f

    简短日期/时间格式(YYYY年MM月dd日 hh:mm)

F

    完整日期/时间格式(YYYY年MM月dd日 hh:mm:ss)

g

    简短的可排序的日期/时间格式(YYYY-MM-dd hh:mm)

G

    完整的可排序的日期/时间格式(YYYY-MM-dd hh:mm:ss)

M或m

月/日格式(MM月dd日)

Y或y

年/月格式(YYYY年MM月)

例2.2:

    static void Main(string[] args)

           {

             DateTime dt=DateTime.Now;

             string strB=String.Format("{0:D}",dt);//格式化为短日期格式

             Console.WriteLine(strB);

             Console.ReadLine();

           }

运行结果:

2016年4月29日

3.String类的Substring方法,该方法可以截取字符串中指定位置和指定长度的字符。

例2.3:

      static voidMain(string[]args)

        {

            stringStrA="我和你一样的坚强,一样善良";

            stringStrB="";

           StrB=StrA.Substring(1,4);//1:要截取的字符的开始位置索引;:要截取的字符个数。

            Console.WriteLine(StrB);

            Console.ReadLine();

      }

运行结果:

和你一样

4. String类的Split方法,用于分割字符串,此方法的返回值是包含你所有分割字符串的数组对象,可以通过数组取得所有分割的子字符串。

例2.4:

       static voidMain(string[]args)

            {

                string StrA="*@有星星的夜空,真的很美……";

                char[] sep={'@','美'};

                String[] sp=newString[100];

                sp=StrA.Split(sep);

                    for(inti=0;i

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    115984博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0916s