开发者

C#数据结构之字符串(string)详解

目录
  • 转义字符序列
  • 字符串的创建
    • 字符串的声明
    • null字符串与空字符串
    • 重复单字符字符串的构造
  • 字符串的属性和常用方法
    • 属性
    • 常用方法
  • 总结
    • 摘要:以具体例子详解C#字符串的使用。
    • 编程语言:C#
    • 编程环境:Visual Studio 2019

    字符串代表文字对象,表示把字符一个一个串起来,视为Char对php象的按序只读集合,使用非常广泛。

    转义字符序列

    在讲字符串前,先说一下字符。不知道大家编程会不会注意到,在字符或者字符串里经常会有一些特殊的字符。

    比如我们想定义一个字符,这个字符就是单引号,但直接把单引号输进去又会提示错误,那是不是这样的字符串不能被定义呢?那就太小看C#语言了。

    对于一些跟语法冲突的字符或者具有特殊含义的字符,规定字符“\”为转义字符,紧跟其后的一个字符要进行特殊处理,根据其后跟的字符来决定它的意义。常用转义字符序列如下。

    常用转义字符序列
    转义字符序列字符名称程序范例运行结果
    \'单引号Write("C\'#");C'#
    \"双引号Write("C\"#");C"#
    \n换行符Write("C\n#");

    C

    #

    \tTab键(空格)Write("C\t#")C #
    \r回车符(回到本行开始位置)Write("C\r#")#C
    \\反斜杠Write("C\\#")C\#

    字符串的创建

    字符串的声明

    字符串的声明很简单,注意字符串赋值时要给字符串内容前后加上双引号,声明语法如下。

    string str = "字符串的内容";

    null字符串与空字符串

    这里特别说明一下空字符串的创建与判断,首先是空字符串的创建,方式有以下三种。

    三种方式并非编程客栈完全一样,其中字符串为null时,若访问其属性,会导致异常,string.Empty和“”javascript字符串表示空字符串,即长度为零的字符串。因此,字符串清空时常用string.Empty或“”,小编以前没明白三者的关系,用null清空字符串,出了不少异常,吃了不少亏。

    string strNull = null;//null字符串,若访问其成员,会导致异常
    string strEmpty = string.Empty;//空字符串,长度为零
    string str = "";//空字符串,长度为零

    C#数据结构之字符串(string)详解

    了解了空字符串的创建,判断起来就容易了,空字符串判断有以下方式。

    其中null只对应null字符串的判断,空字符串string.Empty和“”可以互相等价,string.IsNullOrEmpty同时包括null字符串和空字符串的判断 string.IsNullOrWhiteSpace同时包括null、空字符串和若干空白字符组成的字符串的判断。

    if (str == null)
    {
        //仅在str=null时返回true
    }
    else if (str == "")
    {
        //在str为空字符串时返回true
    }
    else qDxxVif (str == string.Empty)
    {
        //在str为空字符串时返回true
    }
    else if (string.IsNullOrEmpty(str))
    {
        //在str=null或空字符串时返回true
    }
    else if (string.IsNullOrWhiteSpace(str))
    {
        //在str=null、空字符串或若干空白字符组成的字符串时返回true
    }

    重复单字符字符串的构造

    字符串string给出了其构造方法,构造函数如下,功能是构造由count个ch字符组成的字符串。

    String(char ch, int count);//重复单字符组成的字符串构造

    字符串的属性和常用方法

    属性

    • Length:获取(只读)字符串的长度。
    • this[index]:获取(只读)指定索引位置index的字符。

    常用方法

    • CompareTo(str):判断当前字符串与str是否相等,若相等,返回值0。(注:判断字符串相等还可以直接将要判断的两个字符串用逻辑等于符号“==”等起来)
    • ToUpper():将字符串所有字符转换为大写字符。
    • ToLower():将字符串所有字符转换为小写字符。
    • Insert(index,str):返回在索引位置index后插入字符串str后的字符串。
    • Remove(index,count):返回从索引位置index开始,删除count个字符的字符串。
    • Replace(oldchar,newchar):返回以newchar字符替换字符串中所有oldchar字符的字符串。
    • Replace(oldstr,newstr):返回以newstr字符串替换字符串中所有包含oldstr字符串的字符串。

    测试Replace方法,代码如下。

    string str1 = "She is a girl";
    Console.WriteLine(str1.Replace("girl", "boy"));
    Console.WriteLine(str1.Replace('i', 'E'));

    运行结果。

    C#数据结构之字符串(string)详解

    • Substring(index,count):返回截取从索引位置index开始,count个字符的字符串。
    • Substring(index):返回截取从索引位置index开始到最后的字符串。
    • Split(char):返回以字符char作为分割符js分割出来的字符串组成的数组。(注:分割出来的字符串数组的元素不包括分割符char自己)

    测试Split方法,代码如下。

    string str2 = "a,b,c,d";
    string[] STR = str2.Split(',');
                
    for(int i = 0; i < STR.Length; i++)
    {
        Console.WriteLine(STR[i]);
    }

    运行结果。

    C#数据结构之字符串(string)详解

    • IndexOf(char):返回从小到大匹配到的第一个字符char的索引号。
    • LastIndexOf(char):返回从大到小匹配到的第一个字符char的索引号。
    • StartsWith(str):匹配字符串开头是否是str,是返回true,否返回false。
    • EndsWith(str):匹配字符串末尾是否是str,是返回true,否返回false。

    总结

    本文首先讲解了转义字符序列,即如何输入冲突字符和表示特殊意义的字符;其次是字符串的创建,包括声明,空字符串与null字符串的创建与判断的区别和重复字符的字符串构造;最后从字符串的属性和方法详解了字符串的功能。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜