我们已经知道字符串是引用类型。C# 为我们提供了大量的字符串函数来操作字符串。
在深入研究 C# 字符串函数之前,我将向您展示可用的属性。以下是字符串属性
| 属性 | 描述 |
|---|---|
| Chars(int32) | 它返回当前字符串中指定位置的 char 对象。 |
| Length | 它返回字符串的长度(即字符串对象中的字符数) |
C# 字符串函数示例
让我们看一个演示属性的示例。
using System;
class Program
{
static void Main(string[] args)
{
string str = "Tu4tor8ial";
Console.WriteLine("Number of characters in the string: " +str.Length);
for (int i = 0; i < str.Length; i++)
{
if (Char.IsLetter(str[i]))
Console.WriteLine("{0} is a character", str[i]);
else
Console.WriteLine("{0} is a digit", str[i]);
}
Console.ReadKey();
}
}

分析
声明一个字符串变量 str 并用一些字符(字母和数字)“Tu4tor8ial”对其进行初始化。
Str.Length 将给出字符串 str 中的字符数,在本例中为 10,因此它会在控制台打印 10。
接下来,为了演示 Chars(int32) 属性,我们编写了一个 for 循环,其中整数变量 i 初始化为零,并迭代直到 i < str.Length 返回 false。
对于每个 I 值,如果 char 的 IsLetter(str[i]) 方法返回 true,即 T 是一个字母。因此,它返回 true,从而打印该语句
T 是一个字符
已执行
.
同样,当 i=2 时,Char.IsLetter(str[i]) 返回 false,因为它不是字母,而是数字 4,这是一个数字。所以它打印一个语句。
“4 是一个数字”
一些最常用的 C# 字符串函数是
string str, str1,str2; // 声明字符串变量
str = “Tutorial”
str1 = “Welcome”
string[] sarray = {“Hello”, “Hai”};
以下是可用的 C# 字符串函数及其描述列表。
| 函数 | 描述 |
|---|---|
| ToUpper() | 它通过将当前字符串转换为大写来返回副本。 Str.ToUpper() |
| ToLower() | 它通过将当前字符串转换为小写来返回副本。 Str.ToLower() |
| Insert(int32, String) | 它根据数组中的字符将字符串拆分成子字符串。 str1 = “Hello_this_is_tutorial_on_C#” String[] s = str1.Split(“_”) |
| Split(char[]) | 此字符串函数检索从指定位置开始到当前实例的最后一个位置的子字符串。 str.Substring(1) |
| Substring(int32) | 它将从指定位置到当前位置的最后一个位置的所有字符删除,并返回一个新字符串。 str.Remove(5); |
| Remove(int32) | 当比较两个字符串对象时,它返回一个指示排序顺序中位置的整数。 String.Compare(str, str1) |
| Join(string, string[]) | 它使用指定的字符串连接 string[] 的所有元素。 String.Join(“,”, sarray[]) |
| Format(String, Object) | 它用指定对象的字符串表示替换指定字符串中的一个或多个格式项。 String s = String.Format(string, object) |
| Copy(String) | 它创建一个 str 的新实例,其字符串值与指定值相同。 str1 = String.Copy(str); |
| Concat(String, String) | 它连接两个字符串实例。 String.Concat(str, str1) |
| Compare(String, String) | 当比较两个字符串对象时,它返回一个指示排序顺序中位置的整数。 String.Compare(str, str1) |
| Clone() | 此 C# 字符串函数返回字符串实例 str 的引用。 str.Clone() |
| GetType() | 它获取当前对象或实例的类型。 str.Gettype() |
| IsNullOrEmpty(string) | 通过返回布尔值指示指定的字符串是否为 null 或空。 String.IsNullOrEmpty(str); |
| Replace(String, String) | 它用指定的字符串替换当前字符串实例中指定的子字符串。 String s1 = str.Replace(“Tu”, “Tw”) |
| ToString() | 它返回当前字符串的实例。 Str.Tostring() |
| Trim() | 此字符串函数通过删除当前实例的所有前导和尾随空格来返回一个新字符串。 Str.Trim() |
| Contains(String) | 它返回一个布尔值,指示 str 是否包含指定的子字符串 substr。 bool I = str.Contains(substr); |
C# Trim、ToString 和 ToUpper 示例
让我们看一个演示 Trim()、ToString()、ToUpper() 的 C# 代码示例
using System;
class Program
{
static void Main(string[] args)
{
string str2 = "Hai";
string[] str = { "H","a","i" };
string str1 = "Hello";
string sw = " a b c d ";
Console.WriteLine("Trim():");
Console.WriteLine(sw.ToString());
Console.WriteLine(sw.Trim());
Console.WriteLine();
Console.WriteLine("ToString():");
Console.WriteLine(str1.ToString());
Console.WriteLine();
Console.WriteLine("Toupper():");
Console.WriteLine(str1.ToUpper());
}
}

分析
ToString() 将返回当前实例中的引用值,即“a b c d”
Sw.Trim() 会修剪“a b c d”的前导和尾随空格。因此,它会删除“a”之前的空格并打印“a b c d”。
str1.ToString() 将返回当前实例中的引用值,即“Hello”。
str1.ToUpper 将把 str1 中的所有元素转换为大写并打印“HELLO”。
C# ToLower、SubString 和 Split 示例
让我们看一个演示 ToLower()、SubString()、Split() 的 C# 代码示例。
using System;
class Program
{
static void Main(string[] args)
{
string str2 = "Hai";
string[] str = { "H","a","i" };
string str1 = "Hello";
string sw = " a b c d ";
Console.WriteLine("ToLower():");
Console.WriteLine(str1.ToLower());
Console.WriteLine();
Console.WriteLine("Substring():");
Console.WriteLine(str1.Substring(1));
Console.WriteLine();
Console.WriteLine("Split():");
string st = "Welcome-to-C#";
string[] sep = st.Split("-");
foreach (string st1 in sep)
Console.WriteLine(st1);
}
}

分析
Str1 = “Hello”;
str1.ToLower() 将 str1 转换为小写并打印“hello”。
str1.Substring(1) 输出 str1 中从索引位置 1 开始的所有元素,即 Hello 中的 e,因此它打印“ello”。
这里,语句 string[] sep = st.Split(“-“); 表示根据 split 方法中作为参数传递的文本,将字符串对象 st 中的文本值拆分,并将新字符串存储在数组 sep[] 中。
即,“Welcome-to-C#”根据“-”进行分隔,结果如下。
Welcome
to
C#
C# Replace、Remove 和 Join 示例
让我们看一个演示 Replace()、Remove()、Join() 的 C# 代码示例
using System;
class Program
{
static void Main(string[] args)
{
string str2 = "Hai";
string[] str = { "H","a","i" };
string str1 = "Hello";
string sw = " a b c d ";
Console.WriteLine("Replace():");
string s1 = str1.Replace("He", "ha");
Console.WriteLine(s1);
Console.WriteLine();
Console.WriteLine("Remove():");
Console.WriteLine(str1.Remove(3));
Console.WriteLine();
Console.WriteLine("Join():");
Console.WriteLine(String.Join(" ", str));
}
}

分析
s1 = str1.Replace(“He”, “ha”)
表示新字符串 s1,它是将“Hello”中的“He”替换为“Ha”的结果,看起来像
“hallo”
str1.Remove(3) 会从 str1 中删除所有元素(即 Hello)从索引位置三开始直到末尾,形成一个新的字符串,结果如下。
Hel
Join(“”, str) 使用空格(“”)连接 str[] 数组中的元素,结果是
H a i
C# IsNullOrEmpty、Copy 和 Insert 字符串函数示例
让我们看一个演示 C# IsNullOrEmpty()、Copy() 和 Insert() 的示例。
using System;
class Program
{
static void Main(string[] args)
{
string str2 = "Hai";
string[] str = { "H","a","i" };
string str1 = "Hello";
string sw = " a b c d ";
Console.WriteLine("IsNullOrEmpty():");
Console.WriteLine(String.IsNullOrEmpty(str1));
Console.WriteLine();
Console.WriteLine("Copy():");
string str3 = String.Copy(str1);
Console.WriteLine(str3);
Console.WriteLine();
Console.WriteLine("Insert():");
Console.WriteLine(str1.Insert(1, str2));
}
}

分析
IsNullOrEmpty(str1) 的结果是 false,因为字符串实例 str1 不是空的。
str3 = String.Copy(str1) 创建 str1 对象的一个副本并将其存储在另一个对象 str3 中,结果为“Hello”。
str1.Insert(1, str2) 将 str2 的值插入到字符串值 str1 的索引位置 1,即 HHaiello
C# GetType、Compare、Concat 和 Clone 示例
在此示例中,我们将通过每个函数的示例来演示 GetType()、Compare()、Concat() 和 Clone() 字符串函数。
using System;
class Program
{
static void Main(string[] args)
{
string str2 = "Hai";
string[] str = { "H","a","i" };
string str1 = "Hello";
string sw = " a b c d ";
Console.WriteLine("GetType():");
Console.WriteLine(str.GetType());
Console.WriteLine();
Console.WriteLine("Compare():");
Console.WriteLine(String.Compare(str1, str2));
Console.WriteLine();
Console.WriteLine("Concat():");
Console.WriteLine(String.Concat(str1, str2));
Console.WriteLine();
Console.WriteLine("Clone():");
Console.WriteLine(str.Clone());
Console.WriteLine();
Console.WriteLine("Number of characters in the string: " + str.Length);
Console.ReadKey();
}
}

分析
str.GetType() 返回当前实例 i.e. str 的类型,输出为。
System.String[]
Compare(str1, str2) – C# Compare 函数将根据下表给出结果。
| 值 | 条件 |
|---|---|
| 小于 0 | 第一个子字符串在排序顺序中跟在第二个子字符串之后 |
| 零 | 子字符串在排序顺序中出现在相同位置(或)长度为 0 |
| 大于 0 | 第二个子字符串在排序顺序中跟在第一个子字符串之后 |
在此场景中,输出为 1。
Concat(str1, str2) 将连接两者,结果为“HelloHai”。
str.Clone() 返回 str 的引用,即 System.String[]
C# Format 和 Contains 示例
还有两个 C# 字符串函数 Format() 和 Contains()。在此示例中,我们将解释它们。
using System;
class Program
{
static void Main(string[] args)
{
Decimal temp = 25.36M;
string s = String.Format("The temperature is now {0}°C", temp);
Console.WriteLine(s);
Console.WriteLine();
string str = "This is a Tutorial";
bool i = str.Contains("is a");
Console.WriteLine(i);
}
}

分析
Format(“The temperature is now {0}°C”, temp) 将 temp 字符串对象的十进制值 (25.36) 插入到指定的 s 中,并将其显示为单个句子。
即,The temperature is now 25.36°C
str.Contains(“is a”) 检查指定的文本是否存在于字符串对象 str 中,其中 str = “This is a Tutorial”,并相应地返回布尔值。在此场景中,它返回 true。