在 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
参考:
相关用法
- C# String Clone()用法及代码示例
- C# String Compare()用法及代码示例
- C# String CompareOrdinal()用法及代码示例
- C# String CompareTo()用法及代码示例
- C# String Concat()用法及代码示例
- C# String Contains()用法及代码示例
- C# String Copy()用法及代码示例
- C# String CopyTo()用法及代码示例
- C# String EndsWith()用法及代码示例
- C# String Equals()用法及代码示例
- C# String Format()用法及代码示例
- C# String GetEnumerator()用法及代码示例
- C# String IndexOf()用法及代码示例
- C# String Insert()用法及代码示例
- C# String IsInterned()用法及代码示例
- C# String IsNormalized()用法及代码示例
- C# String IsNullOrEmpty()用法及代码示例
- C# String IsNullOrWhiteSpace()用法及代码示例
- C# String Join()用法及代码示例
- C# String LastIndexOf()用法及代码示例
- C# String LastIndexOfAny()用法及代码示例
- C# String Normalize()用法及代码示例
- C# String PadLeft()用法及代码示例
- C# String PadRight()用法及代码示例
- C# String Remove()用法及代码示例
注:本文由纯净天空筛选整理自ankita_saini大神的英文原创作品 C# | String class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。