• (原创)c#学习笔记05--变量的更多内容03--字符串的处理


    5.3  字符串的处理

      下面用几页的篇幅介绍C#中比较常用的字符串处理技巧。

      首先要注意,string 类型变量可以看作是 char 变量只读数组。这样,就可以使用下面的语法访问每个字符:

          string myString = "A string"; 
          char myChar = myString[1];

      但是, 不能用这种方式为各个字符赋值。为了获得一个可写的char数组,可以使用下面的代码,其中使用了数组变量的ToCharArray()命令:

          string myString = "A string"; 
          char[] myChars = myString.ToCharArray();

      接着就可以采用标准方式处理char数组了。也可以在foreach循环中使用字符串,例如:

          foreach (char character in myString) 
          { 
              Console.WriteLine("{0}", character); 
          } 

      与数组一样,还可以使用myString.Length获取元素的个数,这将给出字符串中字符数,例如:

          string myString = Console.ReadLine(); 
          Console.WriteLine("You typed {0} characters.", myString.Length); 

      两个简单但很有效的命令是<string>.ToLower()和<string>.ToUpper()。它们可以分别把字符串转换为大写或小写形式。要明白为什么它们非常有用,可以考虑下面的情形:要检查用户的某个响应,例如字符串yes。如果可以把用户输入的字符串转换为小写形式,就也能检查字符串YES、Yes、yeS等。

      注意,这个命令与本节的其他命令一样,并没有真正改变应用它的字符串。把这个命令与字符合并使用,就会创建一个新的字符串,以便与另一个字符串进行比较(如上所述),或者赋给另一变量。该变量可能与当前操作的变量相同,例如:

    userResponse = userResponse.ToLower(); 

      这是一个要点,因为只写出下面的代码是没用的:

     userResponse.ToLower();

      如果用户无意间在输入内容的前面或后面添加了额外的空格,会怎样?此时,上述代码就不起作用了。这就需要删除输入字符串中的空格,此时可以使用<string>.Trim()命令来处理。

        string userResponse = Console.ReadLine(); 
          userResponse = userResponse.Trim(); 
          if (userResponse.ToLower() == "yes") 
          { 
              // Act on response. 
          } 

      使用该命令,还可以检测如下的字符串:

          " YES" 
          "Yes "

      也可以使用这些命令删除其他字符,只要在一个char数组中指定这些字符即可,例如:

          char[] trimChars = {' ', 'e', 's'}; 
          string userResponse = Console.ReadLine(); 
          userResponse = userResponse.ToLower(); 
          userResponse = userResponse.Trim(trimChars); 
          if (userResponse == "y") 
          { 
              // Act on response. 
          }

      这将从字符串的前面或后面删除所有空格、字母 e 和 s。如果字符串中没有其他字符,就会检测以下字符串:

          "Yeeeees" 
          " y"

      还可以使用<string>.TrimStart()和<string>.TrimEnd()命令。它们可以把字符串的前面或后面的空格删掉。这些命令也需要指定char数组。

      还有另外两个字符串命令可以处理字符串的空格:<string>.PadLeft()和<string>.PadRight()。它们可以在字符串的左边或右边添加空格,使字符串达到指定的长度。其语法如下:

    <string>.PadX(<desiredLength>); 

      例如:

          myString = "Aligned"; 
          myString = myString.PadLeft(10);

      这将在myString中把3个空格添加到单词Aligned的左边。这些方法可以用于在列中对齐字符串,特别适用于放置包含数字的字符串

      与修整命令一样,还可以按照第二种方式使用这些命令,即提供要添加到字符串上的字符,这需要一个char,而不是像修整命令那样指定一个char数组。例如:

          myString = "Aligned"; 
          myString = myString.PadLeft(10, '-');

      这将在myString的开头加上3个短横线。

      还有许多这样的字符串处理命令,其中一些只用于非常特殊的情况,在后面的章节中遇到它们时进行讨论。

      看个示例,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Ch05Ex05
    {
        class Program
        {
            static void Main(string[] args)
            {
                string myString = "This is a string";
                char[] separator = { ' ' };
                string[] myWords;
                myWords = myString.Split(separator);
                foreach (string word in myWords)
                {
                    Console.WriteLine("{0}", word);
                }
                Console.ReadKey();
            }
        }
    }

      运行结果如下:

      使用命令<string>.Split()把 string 转换为 string 数组,把它在指定的位置分隔开。这些位置采用 char数组的形式,在本例中该数组只有一个元素,即空格字符:

    char[] separator = {' '}; 

      下面的代码把字符串在每个空格处分解开时,会得到其子字符串,即得到包含单个单词的数组:

          string[] myWords; 
          myWords = myString.Split(separator);

      note: 得到的每个单词没有空格,单词的内部和两端都没有空格。在使用 Split()时,删除了分隔符。

      

  • 相关阅读:
    lua 学习
    IOS表情存入MYSQL数据库失败
    C# string数组转int数组
    打开端口
    win10下设置IIS、安装php7.2
    NET Core 应用程序 IIS 运行报错 502.3-Gateway
    微信小程序(一)--简单的介绍
    C#socket通信
    使用VScode 的插件
    Vue学习笔记:Slot
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/4911242.html
Copyright © 2020-2023  润新知