C# 字符串
C# 字符串
在本教程中,我们将通过示例了解 C# 字符串及其方法。
在 C# 中,字符串是一个字符序列。例如,"hello"
是一个包含一系列字符 'h'
的字符串 , 'e'
, 'l'
, 'l'
, 和 'o'
.
我们使用 string
关键字来创建一个字符串。例如,
// create a string
string str = "C# Programming";
在这里,我们创建了一个 string
命名为 str 并分配文本 "C# Programming"
.我们在 C# 中使用双引号来表示字符串。
示例:在 C# 中创建字符串
using System;
namespace CsharpString {
class Test {
public static void Main(string [] args) {
// create string
string str1 = "C# Programming";
string str2 = "Programiz";
// print string
Console.WriteLine(str1);
Console.WriteLine(str2);
Console.ReadLine();
}
}
}
输出
C# Programming Programiz
在上面的示例中,我们创建了两个名为 str1 的字符串 和 str2 并打印出来。
注意 :C# 中的字符串变量不是像 int
这样的原始类型 , char
等。相反,它是 String
的对象 类。
字符串操作
C# string 提供了各种方法来对字符串执行不同的操作。我们将研究一些常用的字符串操作。
1。获取字符串的长度
要查找字符串的长度,我们使用 Length
财产。例如,
using System;
namespace CsharpString {
class Test {
public static void Main(string [] args) {
// create string
string str = "C# Programming";
Console.WriteLine("string: " + str);
// get length of str
int length = str.Length;
Console.WriteLine("Length: "+ length);
Console.ReadLine();
}
}
}
输出
string: C# Programming Length: 14
在上面的例子中,Length
属性计算字符串中的字符总数并返回。
2。在 C# 中连接两个字符串
我们可以在 C# 中使用 Concat()
连接两个字符串 方法。例如,
using System;
namespace CsharpString {
class Test {
public static void Main(string [] args) {
// create string
string str1 = "C# ";
Console.WriteLine("string str1: " + str1);
// create string
string str2 = "Programming";
Console.WriteLine("string str2: " + str2);
// join two strings
string joinedString = string.Concat(str1, str2);
Console.WriteLine("Joined string: " + joinedString);
Console.ReadLine();
}
}
}
输出
string str1: C# string str2: Programming Joined string: C# Programming
在上面的示例中,我们创建了两个名为 str1 的字符串 和 str2 .注意声明,
string joinedString = string.Concat(str1, str2);
在这里,Concat()
方法加入 str1 和 str2 并将其分配给 joinedString 变量。
我们还可以使用 +
连接两个字符串 C# 中的运算符。要了解更多信息,请访问 C# string Concat .
3。 C#比较两个字符串
在 C# 中,我们可以使用 Equals()
来比较两个字符串 方法。 Equals()
方法检查两个字符串是否相等。例如,
using System;
namespace CsharpString {
class Test {
public static void Main(string [] args) {
// create string
string str1 = "C# Programming";
string str2 = "C# Programming";
string str3 = "Programiz";
// compare str1 and str2
Boolean result1 = str1.Equals(str2);
Console.WriteLine("string str1 and str2 are equal: " + result1);
//compare str1 and str3
Boolean result2 = str1.Equals(str3);
Console.WriteLine("string str1 and str3 are equal: " + result2);
Console.ReadLine();
}
}
}
输出
string str1 and str2 are equal: True string str1 and str3 are equal: False
在上面的示例中,我们创建了 3 个名为 str1 的字符串 , str2 , 和 str3 .在这里,我们使用 Equals()
检查一个字符串是否等于另一个字符串的方法。
字符串对象的不变性
在 C# 中,字符串是不可变的。这意味着,一旦我们创建了一个字符串,就无法更改该字符串。
为了理解它,考虑一个例子:
// create string
string str = "Hello ";
在这里,我们创建了一个名为 str 的字符串变量 .该变量包含字符串 "Hello "
.
现在假设我们要更改字符串 str .
// add another string "World"
// to the previous string example
str = string.Concat(str, "World");
在这里,我们使用 Concat()
添加字符串 "World" 的方法 到前一个字符串 str .
但是当字符串是不可变的时,我们如何修改它们呢?
让我们看看这里发生了什么,
- C# 取字符串
"Hello "
的值 . - 通过添加
"World"
创建一个新字符串 到字符串"Hello "
. - 创建一个新的字符串对象,给它一个值
"Hello World"
, 并将其存储在 str . - 原始字符串,
"Hello "
, 分配给 str 被释放以进行垃圾回收,因为没有其他变量持有对它的引用。
字符串转义序列
转义字符用于转义字符串中存在的一些字符。换句话说,我们使用转义序列在字符串中插入特殊字符。
假设我们需要在字符串中包含双引号。
// include double quote
string str = "This is the "String" class";
由于字符串用双引号表示,编译器会将 "This is the "
作为字符串。而且上面的代码会报错。
为了解决这个问题,我们使用转义字符 \"
在 C# 中。例如,
// use the escape character
string str = "This is the \"String\" class.";
现在使用 \
在双引号 "
之前 ,我们可以将它包含在字符串中。
C#中的一些转义序列如下:
转义序列 | 角色名称 |
---|---|
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
\0 | 空 |
\n | 换行 |
\t | 横向标签 |
字符串插值
在 C# 中,我们可以使用字符串插值在字符串中插入变量。对于字符串插值,字符串文字必须以 $
开头 特点。例如,
using System;
namespace CsharpString {
class Test {
public static void Main(string [] args) {
// create string
string name = "Programiz";
// string interpolation
string message = $"Welcome to {name}";
Console.WriteLine(message);
Console.ReadLine();
}
}
}
输出
Welcome to Programiz
在上面的例子中,我们使用 name message 中的变量 字符串。
string message = $"Welcome to {name}";
请注意,
- 字符串文字以
$
开头 - 名称 变量放在花括号
{}
内
C#字符串的方法
C# 中有多种字符串方法。其中一些如下:
方法 | 说明 |
---|---|
Format() | 返回一个格式化的字符串 |
Split() | 将字符串拆分为子字符串 |
Substring() | 返回字符串的子字符串 |
Compare() | 比较字符串对象 |
Replace() | 用指定的新字符替换指定的旧字符 |
Contains() | 检查字符串是否包含子字符串 |
Join() | 使用指定的分隔符连接给定的字符串 |
Trim() | 删除所有前导和尾随空格 |
EndsWith() | 检查字符串是否以给定字符串结尾 |
IndexOf() | 返回指定字符在字符串中的位置 |
Remove() | 从字符串中返回字符 |
ToUpper() | 将字符串转换为大写 |
ToLower() | 将字符串转换为小写 |
PadLeft() | 返回用空格或左侧指定的Unicode字符填充的字符串 |
PadRight() | 返回用空格或右侧指定的Unicode字符填充的字符串 |
StartsWith() | 检查字符串是否以给定字符串开头 |
ToCharArray() | 将字符串转换为 char 数组 |
LastIndexOf() | 返回指定字符串最后一次出现的索引 |
常见问题
1.如何在C#中创建字符串数组?字符串数组的创建方式与数据类型数组的创建方式相同。例如,
using System;
namespace CsharpString {
class Test {
public static void Main(string [] args) {
// array of string type
string[] animals = {"Monkey", "Dog", "Cat"};
// print array elements
Console.WriteLine(animals[0]);
Console.WriteLine(animals[1]);
Console.WriteLine(animals[2]);
Console.ReadLine();
}
}
}
输出
Monkey Dog Cat2. C#中string和String的区别
string
之间没有技术上的区别 和 String
.在 C# 中,字符串是 System.String
的别名 .
推荐使用string
因为即使没有 using System;
也能正常工作 .
C语言