C# 字符串的定义及相关方法汇总(学习心得 15)

使用 string 关键字来声明一个字符串变量。

string 关键字是 System.String 类的别名。

一、创建 String 对象

创建方法:

  • 给 String 变量赋值一个字符串
  • 通过 String 类的构造函数
  • 通过字符串的串联运算符(+)
  • 通过检索属性,或调用一个返回字符串的方法
  • 通过格式化方法,转换一个值或对象,为字符串表示形式

例:

using System;

namespace StringApplication
{
    class Program
    {
        static void Main(string[] args)
        {
           // 赋值字符串
            string fname, lname;
            fname = "Rowan";
            lname = "Atkinson";

          	// 字符串串联运算
          	string fullname = fname + lname;
            Console.WriteLine("Full Name: {0}", fullname);

            // 通过使用 string 构造函数
            char[] letters = { 'H', 'e', 'l', 'l','o' };
            string greetings = new string(letters);
            Console.WriteLine("Greetings: {0}", greetings);

            // 方法返回字符串
            string[] sarray = { "Hello", "From", "Tutorials", "Point" };
            string message = String.Join(" ", sarray);
            Console.WriteLine("Message: {0}", message);

            // 用于转化值的格式化方法
            DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
            string chat = String.Format("Message sent at {0:t} on {0:D}",
            waiting);
            Console.WriteLine("Message: {0}", chat);
            Console.ReadKey() ;
        }
    }
}

运行结果:

Full Name: RowanAtkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 17:58 on Wednesday, 10 October 2012

二、String 类的属性

String 有 2 个属性:

  • Chars:在当前 String 对象中获取 Char 对象的指定位置。
  • Length:在当前的 String 对象中获取字符数。

三、String 类的方法

String 类有许多方法用于 string 对象的操作。

以下为最常用的方法:

序号 方法名称 & 描述
1 public static int Compare( string strA, string strB, bool ignoreCase ) 比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。但是,如果布尔参数为 true时,该方法不区分大小写,默认为 false。 string.Compare(str1, str2,true) 相同返回 0,否则返回 -1
2 public static string Concat( string str0, string str1… ) 连接多个 string 对象。 string.Concat(str1,str2,str3)
3 public bool Contains( string value ) 返回一个表示指定 string 对象是否出现在字符串中的值。 str1.Contains(str2)
8 public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count ) 从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。 strSource.CopyTo ( 0, destination, 4, strSource.Length );
9 public bool EndsWith( string value ) 判断 string 对象的结尾是否匹配指定的字符串。 str1.EndsWith(“est”)
10 public bool Equals( string value ) 判断当前的 string 对象是否与指定的 string 对象具有相同的值。 str1.Equals(str2)
11 public static bool Equals( string a, string b ) 判断两个指定的 string 对象是否具有相同的值。 string.Equals(str1,str2)
12 public static string Format( string format, Object arg0 ) 把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。 string.Format(“word: {0}”,str1)
14 public int IndexOf( string value ) 返回指定字符串在该实例中第一次出现的索引,索引从 0 开始。 str1.IndexOf(“is”) 没有找到返回 -1
16 public int IndexOf( string value, int startIndex ) 返回指定字符串从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。 str1.IndexOf(“is”,3) 没有找到返回 -1
17 public int IndexOfAny( char[] anyOf ) 返回某一个指定的 Unicode 字符数组中任意字符在该实例中第一次出现的索引,索引从 0 开始。 char[] yy = { ‘t’, ‘e’ }; str1.IndexOfAny(yy);
18 public int IndexOfAny( char[] anyOf, int startIndex ) 返回某一个指定的 Unicode 字符数组中任意字符从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。 str1.IndexOfAny(yy, 3);
19 public string Insert( int startIndex, string value ) 返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。 str1.Insert(3,”uuu”)
20 public static bool IsNullOrEmpty( string value ) 指示指定的字符串是否为 null 或者是否为一个空的字符串。 string.IsNullOrEmpty(str3)
21 public static string Join( string separator, string[] value ) 连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。 string [] str3= {str1,str2 }; string.Join(” d “,str3)
22 public static string Join( string separator, string[] value, int startIndex, int count ) 连接接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。 string.Join(“d”,str3,1,2)
24 public int LastIndexOf( string value ) 返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。 str1.LastIndexOf(“i”) 没有找到返回 -1
25 public string Remove( int startIndex ) 移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止,并返回字符串。 str1.Remove(5) 不会改变原字符串,仅把移除后的字符串作为返回值
26 public string Remove( int startIndex, int count ) 从当前字符串的指定位置开始移除指定数量的字符,并返回字符串。 str1.Remove(5,3)
28 public string Replace( string oldValue, string newValue ) 把当前 string 对象中,所有指定的字符串替换为另一个指定的字符串,并返回新的字符串。 str1.Replace(“Th”,”w”)
29 public string[] Split( params char[] separator ) 返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。 str1.Split(“is”)
30 public string[] Split( char[] separator, int count ) 返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。 str1.Split(“is”,2)
31 public bool StartsWith( string value ) 判断字符串实例的开头是否匹配指定的字符串。 str1.StartsWith(“Th”)
32 public char[] ToCharArray() 返回一个带有当前 string 对象中所有字符的 Unicode 字符数组。 str1.ToCharArray()
33 public char[] ToCharArray( int startIndex, int length ) 返回一个带有当前 string 对象中所有字符的 Unicode 字符数组,从指定的索引开始,直到指定的长度为止。 str1.ToCharArray(2,3)
34 public string ToLower() 把字符串转换为小写并返回。 str1.ToLower()
35 public string ToUpper() 把字符串转换为大写并返回。 str1.ToUpper()
36 public string Trim() 移除当前 String 对象中的所有前导空白字符和后置空白字符。 str1.Trim()

例:对比两个字符串是否相同

using System;

namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string str1 = "This is test";
         string str2 = "This is text";

         if (String.Compare(str1, str2) == 0)
         {
            Console.WriteLine(str1 + " and " + str2 +  " are equal.");
         }
         else
         {
            Console.WriteLine(str1 + " and " + str2 + " are not equal.");
         }
         Console.ReadKey() ;
      }
   }
}

运行结果:

This is test and This is text are not equal.

例:查询字符串是否包含另一个字符串

using System;

namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string str = "This is test";
         if (str.Contains("test"))
         {
            Console.WriteLine("The sequence 'test' was found.");
         }
         Console.ReadKey() ;
      }
   }
}

运行结果:

The sequence 'test' was found.

例:获取子字符串

using System;
namespace StringApplication
{
        class StringProg
        {
                static void Main(string[] args)
                {
                        string str = "Last night I dreamt of San Pedro";
                        Console.WriteLine(str);
                        string substr = str.Substring(23);
                        Console.WriteLine(substr);
                        Console.ReadKey() ;
                }
        }
}

运行结果:

Last night I dreamt of San Pedro
San Pedro

例:连接字符串

using System;

namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string[] starray = new string[]{"Down the way nights are dark",
         "And the sun shines daily on the mountain top",
         "I took a trip on a sailing ship",
         "And when I reached Jamaica",
         "I made a stop"};

         string str = String.Join("\n", starray);
         Console.WriteLine(str);
         Console.ReadKey() ;
      }
   }
}

运行结果:

Down the way nights are dark
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop
Tags: