当前位置: 首页 > 技术专区  > .net技术 > C#基础篇

C#字符串

2018-4-13 14:37:01 人评论

在 C# 中,使用字符串作为字符数组,但更常见的做法是使用string关键字来声明一个字符串变量。string关键字是System.String类的别名。创建一个字符串对象可以使用以下方法之一来创建字符串对象:通过将一个字符串文字分配给一个String变量通过使用String类构造函数通过使…

在 C# 中,使用字符串作为字符数组,但更常见的做法是使用string关键字来声明一个字符串变量。string关键字是System.String类的别名。

创建一个字符串对象

可以使用以下方法之一来创建字符串对象:

  • 通过将一个字符串文字分配给一个String变量

  • 通过使用String类构造函数

  • 通过使用字符串连接运算符(+)

  • 通过检索属性或调用返回字符串的方法

  • 通过调用格式化方法将值或对象转换为其字符串表示形式

示例:

using System;namespace StringApplication{
   class Program
   {
      static void Main(string[] args)
      {
         //from string literal and string concatenation
         string fname, lname;
         fname = "Rowan";
         lname = "Atkinson";

         string fullname = fname + lname;
         Console.WriteLine("Full Name: {0}", fullname);

         //by using string constructor
         char[] letters = { 'H', 'e', 'l', 'l','o' };
         string greetings = new string(letters);
         Console.WriteLine("Greetings: {0}", greetings);

         //methods returning string
         string[] sarray = { "Hello", "From", "Yiibai", "Point" };
         string message = String.Join(" ", sarray);
         Console.WriteLine("Message: {0}", message);

         //formatting method to convert a value
         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);
      }
   }}C#

当编译和执行上述代码时,会产生以下结果:

Full Name: Rowan Atkinson
Greetings: Hello
Message: Hello From Yiibai Point
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012Shell

String类的属性

String类具有以下两个属性:

编号属性说明
1Chars获取当前String对象中指定位置的Char对象。
2Length获取当前String对象中的字符数。

String类的方法

String类有许多方法可以帮助我们来处理字符串对象。下表中提供了一些最常用的方法:

编号方法说明
1public static int Compare(string strA, string strB)比较两个指定的字符串对象,并返回一个整数,指示其在排序顺序中的相对位置。
2public static int Compare(string strA, string strB, bool ignoreCase )比较两个指定的字符串对象,并返回一个整数,指示其在排序顺序中的相对位置。 但是,如果布尔参数为真,它将忽略大小写。
3public static string Concat(string str0, string str1)连接两个字符串对象。
4public static string Concat(string str0, string str1, string str2)连接三个字符串对象。
5public static string Concat(string str0, string str1, string str2, string str3)连接四个字符串对象。
6public bool Contains(string value)返回一个值,该值指示在此字符串中是否发生指定的String对象。
7public static string Copy(string str)创建与指定字符串相同值的新String对象。
8public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count)将指定数量的字符从String对象的指定位置复制到Unicode字符数组中的指定位置。
9public bool EndsWith(string value)确定字符串对象的末尾是否与指定的字符串匹配。
10public bool Equals(string value)确定当前的String对象和指定的String对象是否具有相同的值。
11public static bool Equals(string a, string b)确定两个指定的String对象是否具有相同的值。
12public static string Format(string format, Object arg0)用指定对象的字符串表示替换指定字符串中的一个或多个格式项。
13public int IndexOf(char value)返回当前字符串中指定Unicode字符首次出现的从零开始的索引。
14public int IndexOf(string value)返回此实例中指定字符串第一次出现的从零开始的索引。
15public int IndexOf(char value, int startIndex)返回此字符串中指定Unicode字符第一次出现的从零开始的索引,在指定的字符位置开始搜索。



16public int IndexOf(string value, int startIndex)返回此实例中指定字符串第一次出现的从零开始的索引,在指定的字符位置开始搜索。
17public int IndexOfAny(char[] anyOf)返回指定Unicode字符数组中任何字符在此实例中第一次出现的基于零的索引。
18public int IndexOfAny(char[] anyOf, int startIndex)返回在指定的Unicode字符数组中的任何字符在这个实例的第一次出现的基于零的索引,在指定的字符位置开始搜索。
19public string Insert(int startIndex, string value)返回一个新的字符串,在当前字符串对象的指定索引位置插入指定的字符串。
20public static bool IsNullOrEmpty(string value)判断指定的字符串是空值还是空字符串。
21public static string Join(string separator, params string[] value)每个元素之间使用指定的分隔符来连接字符串数组的所有元素。
22public static string Join(string separator, string[] value, int startIndex, int count)每个元素之间使用指定的分隔符来连接字符串数组的指定元素。
23public int LastIndexOf(char value)返回当前字符串对象中指定Unicode字符,从零开始搜索的最后一次出现的索引位置。
24public int LastIndexOf(string value)返回当前字符串对象中指定字符串从零开始搜索的最后一次出现的索引位置。
25public string Remove(int startIndex)删除当前实例中从指定位置开始到最后一个位置的所有字符,并返回此字符串。
26public string Remove(int startIndex, int count)从指定位置移除当前字符串中指定数量的字符,并返回字符串。
27public string Replace(char oldChar, char newChar)使用指定的Unicode字符替换当前字符串对象中指定的Unicode字符的所有出现字符,并返回新的字符串。
28public string Replace(string oldValue, string newValue)使用指定的字符串替换当前字符串对象中指定字符串的所有出现字符,并返回新的字符串。
29public string[] Split(params char[] separator)返回一个字符串数组,其中包含当前字符串对象中的子字符串,由指定的Unicode字符数组的元素分隔。
30public string[] Split(char[] separator, int count)返回一个字符串数组,其中包含当前字符串对象中的子字符串,由指定的Unicode字符数组的元素分隔。 int参数指定要返回的子字符串的最大数量。
31public bool StartsWith(string value)确定此字符串实例的开始是否与指定的字符串匹配。
32public char[] ToCharArray()返回一个Unicode字符数组,其中包含当前字符串对象中的所有字符。
33public char[] ToCharArray(int startIndex, int length)返回一个Unicode字符数组,其中包含当前字符串对象中的所有字符(从指定的索引开始,直到指定的长度。)
34public string ToLower()返回一个转换为小写的字符串的副本。
35public string ToUpper()返回一个转换为大写的字符串的副本。
36public string Trim()从当前String对象中删除所有前导和尾随的空格字符。

您可以访问MSDN库,获取方法和String类构造函数的完整列表。

实例

以下示例演示了上述一些方法:

比较字符串:

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() ;
      }
   }}C#

当编译和执行上述代码时,会产生以下结果:

This is test and This is text are not equal.Shell

字符串包含字符串:

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() ;
      }
   }}C#

当编译和执行上述代码时,会产生以下结果:

The sequence 'test' was found.Shell

获取子字符串:

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

当编译和执行上述代码时,会产生以下结果:

GirlsShell

将字符串连接:

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);
      }
   }}C#

当编译和执行上述代码时,会产生以下结果:

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


上一篇:C#编程之数组介绍

下一篇:C#结构体

相关文章

    暂无相关的数据...

共有 条评论 网友评论

验证码: 看不清楚?
    [向上]