当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C# String用法及代码示例


在 C# 中,字符串是 Unicode 字符序列或字符数组。

Unicode 字符的范围将是U+0000 至 U+FFFF。字符数组也称为文本。所以字符串是文本的表示。字符串由类表示System.String.
String 类定义在.NET 基类 Library 。换句话说,String 对象是一个顺序集合System.Char代表字符串的对象。 String对象在内存中的最大大小可以是2GB 或约 10 亿个字符.

String类的特点:

  • System.String类是不可变的,即一旦创建它的状态就不能改变。
  • 借助 length 属性,它提供给定字符串中存在的字符总数。
  • 字符串对象可以包含空字符,该字符计为字符串长度的一部分。
  • 它提供给定字符串中字符的位置。
  • 它允许空字符串。空字符串是包含零个字符的 String 对象的有效实例。
  • 已声明但尚未赋值的字符串为 null。尝试调用该字符串上的方法会抛出NullReferenceException.
  • 它还支持搜索字符串、字符串比较、相等性测试、修改字符串、字符串规范化、字符串复制等。
  • 它还提供了多种创建字符串的方法,例如使用构造函数、使用串联等。

Constructor

构造函数 说明
字符串(字符*) 将 String 类的新实例初始化为指向 Unicode 字符数组的指定指针指示的值。
字符串(字符*,Int32,Int32) 将 String 类的新实例初始化为由指向 Unicode 字符数组的指定指针、该数组中的起始字符位置和长度指示的值。
字符串(字符,Int32) 将 String 类的新实例初始化为由重复指定次数的指定 Unicode 字符指示的值。
字符串(字符[]) 将 String 类的新实例初始化为 Unicode 字符数组指示的值。
字符串(Char[]、Int32、Int32) 将 String 类的新实例初始化为由 Unicode 字符数组、该数组中的起始字符位置和长度指示的值。
字符串(SByte*) 将 String 类的新实例初始化为指向 8 位有符号整数数组的指针所指示的值。
字符串(SByte*、Int32、Int32) 将 String 类的新实例初始化为由指向 8 位有符号整数数组的指定指针、该数组中的起始位置和长度指示的值。
字符串(SByte*、Int32、Int32、编码) 将 String 类的新实例初始化为由指向 8 位有符号整数数组的指定指针、该数组中的起始位置、长度和 Encoding 对象指示的值。

例子:


// C# program to demonstrate the creation 
// of string using the constructor 
using System; 
class Geeks { 
  
    // Main Method 
    public static void Main() 
    { 
        char[] chars = { 'G', 'E', 'E', 'K', 'S' }; 
  
        // Create a string from a character array. 
        string str1 = new string(chars); 
        Console.WriteLine(str1); 
  
        // Create a string that consists of 
        // a character repeated 5 times. 
        string str2 = new string('E', 5); 
        Console.WriteLine(str2); 
    } 
} 
输出:
GEEKS
EEEEE

Properties

属性 说明
字符[Int32] 获取当前 String 对象中指定位置的 Char 对象。
Length 获取当前 String 对象中的字符数。

例子:


// C# program to demonstrate the 
// String Class Properties 
using System; 
  
class Geeks { 
   
    // Main Method 
    public static void Main() 
    { 
        string str = "GeeksforGeeks"; 
          
        // using Chars[Int32] & Length property 
        for (int i = 0; i <= str.Length - 1; i++) 
            Console.Write("{0} ", str[i]); 
    } 
} 
输出:
G e e k s f o r G e e k s

Methods

方法 说明
Clone() 返回对此 String 实例的引用。
Compare() 用于比较两个字符串对象。
比较序数(字符串,Int32,字符串,Int32,Int32) 通过计算每个子字符串中相应 Char 对象的数值来比较两个指定 String 对象的子字符串。
CompareOrdinal(String, String) 通过计算每个字符串中相应 Char 对象的数值来比较两个指定的 String 对象。
CompareTo() 将当前实例与指定的 Object 或 String 对象进行比较。
Concat() 连接一个或多个 String 实例,或者一个或多个 Object 实例的值的字符串表示形式。
Contains(String) 返回一个值,指示指定的子字符串是否出现在此字符串中。
Copy(String) 创建一个新的 String 实例,其值与指定的 String 相同。
CopyTo(Int32, Char[], Int32, Int32) 将指定数量的字符从此实例中的指定位置复制到 Unicode 字符数组中的指定位置。
EndsWith() 确定此字符串实例的结尾是否与指定字符串匹配。
Equals() 确定两个 String 对象是否具有相同的值。
Format() 根据指定的格式将对象的值转换为字符串并将它们插入到另一个字符串中。
GetEnumerator() 检索一个可以迭代该字符串中各个字符的对象。
GetHashCode() 返回该字符串的哈希码。
GetType() 获取当前实例的类型。
(继承自对象)
GetTypeCode() 返回 String 类的TypeCode。
IndexOf() 报告指定 Unicode 字符或字符串在此实例中第一次出现的从零开始的索引。如果在此实例中未找到该字符或字符串,该方法将返回 -1。
IndexOfAny() 报告指定 Unicode 字符数组中任何字符在此实例中第一次出现的索引。如果在此实例中找不到数组中的字符,则该方法返回 -1。
插入(Int32,字符串) 返回一个新字符串,其中指定字符串插入到此实例中的指定索引位置。
Intern(String) 检索系统对指定字符串的引用。
IsInterned(String) 检索对指定字符串的引用。
IsNormalized() 指示该字符串是否采用特定的 Unicode 规范化形式。
IsNullOrEmpty(String) 指示指定的字符串是否为 null 或空字符串。
IsNullOrWhiteSpace(String) 指示指定的字符串是否为 null、空或仅由空白字符组成。
Join() 使用每个元素或成员之间的指定分隔符连接指定数组的元素或集合的成员。
LastIndexOf() 报告指定 Unicode 字符或字符串在此实例中最后一次出现的从零开始的索引位置。如果在此实例中未找到该字符或字符串,该方法将返回 -1。
MemberwiseClone() 创建当前对象的浅拷贝。
(继承自对象)
Normalize() 返回一个新字符串,其二进制表示形式采用特定的 Unicode 规范化形式。
PadLeft() 返回指定长度的新字符串,其中当前字符串的开头用空格或指定的 Unicode 字符填充。
PadRight() 返回指定长度的新字符串,其中当前字符串的末尾用空格或指定的 Unicode 字符填充。
Remove() 返回一个新字符串,其中从当前字符串中删除了指定数量的字符。
Replace() 返回一个新字符串,其中当前字符串中出现的所有指定 Unicode 字符或字符串均替换为另一个指定的 Unicode 字符或字符串。
Split() 返回一个字符串数组,其中包含此实例中由指定字符串或 Unicode 字符数组的元素分隔的子字符串。
StartsWith(String) 确定此字符串实例的开头是否与指定字符串匹配。
子串(Int32) 从此实例中检索子字符串。
ToCharArray() 将此实例中的字符复制到 Unicode 字符数组。
ToLower() 返回此字符串转换为小写的副本。
ToLowerInvariant() 返回使用不变区域性的大小写规则转换为小写的此 String 对象的副本。
ToString() 将此实例的值转换为字符串。
ToUpper() 返回此字符串转换为大写的副本。
ToUpperInvariant() 返回使用不变区域性的大小写规则转换为大写的此 String 对象的副本。
Trim() 返回一个新字符串,其中从当前 String 对象中删除所有出现的一组指定字符。
修剪结束(字符[]) 从当前 String 对象中删除数组中指定的一组字符的所有尾随匹配项。
修剪开始(字符[]) 从当前 String 对象中删除数组中指定的一组字符的所有前导匹配项。

例子:


// C# program to illustrate 
// String class methods 
using System; 
   
class GFG { 
      
    static void copymethod() 
    { 
        string str1 = "GeeksforGeeks"; 
        string str2 = "geeks"; 
        Console.WriteLine("Original Strings: str1 = "
                              + "'{0}' and str2 ='{1}'", 
                          str1, str2); 
   
        Console.WriteLine(""); 
   
        Console.WriteLine("After Copy method"); 
        Console.WriteLine(""); 
   
        // using the Copy method 
        // to copy the value of str1 
        // into str2 
        str2 = String.Copy(str1); 
   
        Console.WriteLine("Strings are str1 = "
                              + "'{0}' and str2='{1}'", 
                          str1, str2); 
    } 
      
   
    // Main method 
    static public void Main() 
    { 
   
        // variables 
        string str1 = "geeksforgeeks"; 
        string str2 = "geeksforgeeks"; 
   
        bool result; 
   
        // Compare(string, string) method return true 
        // because the given strings are equal 
        result = String.Compare(str1, str2) == 0; 
   
        Console.WriteLine("Result of Compare Method: " +result); 
          
        // calling method 
        copymethod(); 
    } 
} 
输出:
Result of Compare Method: True
Original Strings: str1 = 'GeeksforGeeks' and str2 ='geeks'

After Copy method

Strings are str1 = 'GeeksforGeeks' and str2='GeeksforGeeks'

Operators

操作符 说明
Equality(String, String) 确定两个指定的字符串是否具有相同的值。
Inequality(String, String) 确定两个指定的字符串是否具有不同的值。

例子:


// C# program to illustrate the 
// Equality and Inequality operator 
using System; 
  
class GFG { 
  
    // Main Method 
    public static void Main(string[] args) 
    { 
        string s1 = "WelcomeToGeeks"; 
        string s2 = "WelcomeToGeeks"; 
        bool result1, result2; 
  
        // Equality operator return true 
        // as both string are equal 
        result1 = s1 == s2; 
  
        // Inequality operator return false 
        // as both string are equal 
        result2 = s1 != s2; 
  
        Console.WriteLine(result1); 
        Console.WriteLine(result2); 
    } 
} 
输出:
True
False

参考:



相关用法


注:本文由纯净天空筛选整理自ankita_saini大神的英文原创作品 C# | String class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。