📜  C#-字符串

📅  最后修改于: 2020-12-28 05:06:12             🧑  作者: Mango


在C#中,可以将字符串用作字符数组,但是,更常见的做法是使用字符串关键字声明一个字符串变量。 字符串关键字是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";
            
         char []letters= { 'H', 'e', 'l', 'l','o' };
         string [] sarray={ "Hello", "From", "Tutorials", "Point" };
         
         string fullname = fname + lname;
         Console.WriteLine("Full Name: {0}", fullname);
         
         //by using string constructor { 'H', 'e', 'l', 'l','o' };
         string greetings = new string(letters);
         Console.WriteLine("Greetings: {0}", greetings);
         
         //methods returning string { "Hello", "From", "Tutorials", "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);
      }
   }
}

编译并执行上述代码后,将产生以下结果-

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

字符串类的属性

String类具有以下两个属性-

Sr.No. Property & Description
1

Chars

Gets the Char object at a specified position in the current String object.

2

Length

Gets the number of characters in the current String object.

字符串类的方法

String类具有许多方法,可帮助您处理字符串对象。下表提供了一些最常用的方法-

Sr.No. Methods & Description
1

public static int Compare(string strA, string strB)

Compares two specified string objects and returns an integer that indicates their relative position in the sort order.

2

public static int Compare(string strA, string strB, bool ignoreCase )

Compares two specified string objects and returns an integer that indicates their relative position in the sort order. However, it ignores case if the Boolean parameter is true.

3

public static string Concat(string str0, string str1)

Concatenates two string objects.

4

public static string Concat(string str0, string str1, string str2)

Concatenates three string objects.

5

public static string Concat(string str0, string str1, string str2, string str3)

Concatenates four string objects.

6

public bool Contains(string value)

Returns a value indicating whether the specified String object occurs within this string.

7

public static string Copy(string str)

Creates a new String object with the same value as the specified string.

8

public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count)

Copies a specified number of characters from a specified position of the String object to a specified position in an array of Unicode characters.

9

public bool EndsWith(string value)

Determines whether the end of the string object matches the specified string.

10

public bool Equals(string value)

Determines whether the current String object and the specified String object have the same value.

11

public static bool Equals(string a, string b)

Determines whether two specified String objects have the same value.

12

public static string Format(string format, Object arg0)

Replaces one or more format items in a specified string with the string representation of a specified object.

13

public int IndexOf(char value)

Returns the zero-based index of the first occurrence of the specified Unicode character in the current string.

14

public int IndexOf(string value)

Returns the zero-based index of the first occurrence of the specified string in this instance.

15

public int IndexOf(char value, int startIndex)

Returns the zero-based index of the first occurrence of the specified Unicode character in this string, starting search at the specified character position.

16

public int IndexOf(string value, int startIndex)

Returns the zero-based index of the first occurrence of the specified string in this instance, starting search at the specified character position.

17

public int IndexOfAny(char[] anyOf)

Returns the zero-based index of the first occurrence in this instance of any character in a specified array of Unicode characters.

18

public int IndexOfAny(char[] anyOf, int startIndex)

Returns the zero-based index of the first occurrence in this instance of any character in a specified array of Unicode characters, starting search at the specified character position.

19

public string Insert(int startIndex, string value)

Returns a new string in which a specified string is inserted at a specified index position in the current string object.

20

public static bool IsNullOrEmpty(string value)

Indicates whether the specified string is null or an Empty string.

21

public static string Join(string separator, params string[] value)

Concatenates all the elements of a string array, using the specified separator between each element.

22

public static string Join(string separator, string[] value, int startIndex, int count)

Concatenates the specified elements of a string array, using the specified separator between each element.

23

public int LastIndexOf(char value)

Returns the zero-based index position of the last occurrence of the specified Unicode character within the current string object.

24

public int LastIndexOf(string value)

Returns the zero-based index position of the last occurrence of a specified string within the current string object.

25

public string Remove(int startIndex)

Removes all the characters in the current instance, beginning at a specified position and continuing through the last position, and returns the string.

26

public string Remove(int startIndex, int count)

Removes the specified number of characters in the current string beginning at a specified position and returns the string.

27

public string Replace(char oldChar, char newChar)

Replaces all occurrences of a specified Unicode character in the current string object with the specified Unicode character and returns the new string.

28

public string Replace(string oldValue, string newValue)

Replaces all occurrences of a specified string in the current string object with the specified string and returns the new string.

29

public string[] Split(params char[] separator)

Returns a string array that contains the substrings in the current string object, delimited by elements of a specified Unicode character array.

30

public string[] Split(char[] separator, int count)

Returns a string array that contains the substrings in the current string object, delimited by elements of a specified Unicode character array. The int parameter specifies the maximum number of substrings to return.

31

public bool StartsWith(string value)

Determines whether the beginning of this string instance matches the specified string.

32

public char[] ToCharArray()

Returns a Unicode character array with all the characters in the current string object.

33

public char[] ToCharArray(int startIndex, int length)

Returns a Unicode character array with all the characters in the current string object, starting from the specified index and up to the specified length.

34

public string ToLower()

Returns a copy of this string converted to lowercase.

35

public string ToUpper()

Returns a copy of this string converted to uppercase.

36

public string Trim()

Removes all leading and trailing white-space characters from the current String object.

您可以访问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() ;
      }
   }
}

编译并执行上述代码后,将产生以下结果-

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

编译并执行上述代码后,将产生以下结果-

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

编译并执行上述代码后,将产生以下结果-

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