常用字符串API
在C#中,字符串是一个非常重要的数据类型,它提供了丰富的API(应用程序接口)来处理和操作字符串。工作的时候我们可以直接用 AI 的方式来进行搜索,不建议死记硬背,用到了再查,这块内容混个脸熟即可。
以下是我列举的一些常用的字符串API的详细说明:
常用 API
1. 字符串的创建和赋值
string str = "Hello, World!"; // 直接赋值
string str2 = new string('c', 5); // 使用字符和长度创建字符串,这里将创建字符串"ccccc"
2. 字符串连接
string str3 = str + " " + str2; // 使用+操作符连接字符串
string str4 = String.Concat(str, " ", str2); // 使用String.Concat方法连接字符串
2. 字符串比较
bool isEqual = str.Equals(str3); // 比较两个字符串是否相等
int comparison = str.CompareTo(str3); // 比较两个字符串,返回它们的字典顺序差异
int compareResult = String.Compare(str, str3); // 另一种比较字符串的方法
3. 字符串查找
int index = str.IndexOf('o'); // 查找字符'o'首次出现的位置
int lastIndex = str.LastIndexOf('l'); // 查找字符'l'最后出现的位置
bool contains = str.Contains("World"); // 检查字符串是否包含子字符串"World"
4. 字符串替换
string replacedStr = str.Replace("World", "C#"); // 将"World"替换为"C#"
5. 字符串分割
string[] parts = str.Split(' '); // 使用空格分割字符串
string[] parts2 = str.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries); // 使用多个字符分割字符串,并移除空条目
6. 字符串的格式化
string formatted = String.Format("Hello, {0}!", "C#"); // 使用String.Format进行格式化
string interpolated = $"Hello, {name}!"; // 使用C# 6.0及以后的字符串插值进行格式化
7. 字符串的大小写转换
string lower = str.ToLower(); // 转换为小写
string upper = str.ToUpper(); // 转换为大写
8. 字符串的去除空白
string trimmed = str.Trim(); // 去除字符串两端的空白字符
string trimmedStart = str.TrimStart(); // 去除字符串开头的空白字符
string trimmedEnd = str.TrimEnd(); // 去除字符串末尾的空白字符
9. 字符串的插入和移除
string inserted = str.Insert(5, "Beautiful "); // 在索引5的位置插入字符串"Beautiful "
string removed = str.Remove(7, 5); // 从索引7开始移除5个字符
10. 字符串的复制和填充
string repeated = new string(str[0], 10); // 复制字符串的第一个字符10次
string padded = str.PadLeft(15); // 在字符串左侧填充空格,直到总长度为15
string paddedRight = str.PadRight(15, '*'); // 在字符串右侧填充'*',直到总长度为15
11. 字符串的子串获取
string substring = str.Substring(2, 4); // 从索引2开始获取长度为4的子串
这些API为开发者提供了在C#中处理和操作字符串的丰富功能。它们使得字符串处理变得更加简单、高效和灵活。根据具体的应用场景,可以选择适合的API来实现所需的功能。
12. EndsWith()
在C#中,EndsWith() 是 string 类的一个方法,用于确定字符串的末尾是否匹配指定的子字符串。如果字符串的末尾匹配指定的值,则 EndsWith() 方法返回 true;否则返回 false。
EndsWith() 方法有几个重载版本,允许你指定比较是否应该区分大小写,以及是否应该考虑字符串的末尾是否存在空白字符。
下面是一些使用 EndsWith() 方法的例子:
string fileName = "example.txt";
bool endsWithTxt = fileName.EndsWith(".txt"); // 返回 true
bool endsWithDoc = fileName.EndsWith(".doc"); // 返回 false
// 使用重载版本,指定不区分大小写
bool endsWithTxtIgnoreCase = fileName.EndsWith(".TXT", StringComparison.OrdinalIgnoreCase); // 返回 true
在这个例子中,endsWithTxt 变量将被设置为 true,因为 fileName 字符串以 ".txt" 结尾。而 endsWithDoc 变量将被设置为 false,因为 fileName 字符串不以 ".doc" 结尾。
StringComparison.OrdinalIgnoreCase 是一个枚举值,用于指定在比较字符串时忽略大小写。因此,endsWithTxtIgnoreCase 也将被设置为 true,即使我们检查的是大写形式的 ".TXT"。
这个方法在处理文件路径、URL或任何需要基于字符串结尾进行条件判断的场景中非常有用。
string
string.Format()
在C#中,string.Format() 是一个非常有用的方法,用于将指定的格式字符串与指定的参数列表组合起来,生成一个格式化的字符串。它允许你插入和格式化各种类型的数据,如整数、浮点数、日期和时间、枚举等。
以下是 string.Format() 方法的一些基本用法和代码示例:
1. 基本用法
string format = "Hello, {0}! Today is {1}.";
string result = string.Format(format, "Alice", DateTime.Now.ToShortDateString());
Console.WriteLine(result); // 输出:Hello, Alice! Today is 2023-03-15.
在这个例子中,0 和 1 是占位符,它们分别被后面的参数 "Alice" 和 DateTime.Now.ToShortDateString() 替换。
2. 使用索引
你可以通过索引指定参数的顺序。这在参数列表较长时特别有用,因为它允许你以任何顺序插入参数。
string format = "The sum of {1} and {0} is {2}.";
int a = 5;
int b = 10;
int sum = a + b;
string result = string.Format(format, a, b, sum);
Console.WriteLine(result); // 输出:The sum of 10 and 5 is 15.
3. 格式化数字
你可以使用格式字符串来指定数字的格式。
double pi = 3.141592653589793;
string piString = string.Format("Pi is approximately {0:F2}.", pi);
Console.WriteLine(piString); // 输出:Pi is approximately 3.14.
在这个例子中,{0:F2} 表示将第一个参数(pi)格式化为带有两位小数的浮点数。
4. 格式化日期和时间
日期和时间也可以格式化。
DateTime now = DateTime.Now;
string formattedDate = string.Format("Today is {0:yyyy-MM-dd}.", now);
Console.WriteLine(formattedDate); // 输出:Today is 2023-03-15.
5. 自定义格式字符串
你还可以创建自定义的格式字符串来控制输出的精确格式。
int number = -12345;
string formattedNumber = string.Format("The number is {0:N0}.", number);
Console.WriteLine(formattedNumber); // 输出:The number is -12,345.
在这个例子中,{0:N0} 将数字格式化为带有千位分隔符但不包含小数部分的字符串。
6. 复合格式化
你还可以组合使用不同的格式选项。
double value = 12345.6789;
string message = string.Format("Value: {0:N2} (Hex: {0:X8})", value);
Console.WriteLine(message); // 输出:Value: 12,345.68 (Hex: 30394629)
在这个例子中,{0:N2} 用于将值格式化为带有两位小数的货币字符串,而 {0:X8} 则将其格式化为8位十六进制数。
string.Format() 方法的功能非常强大且灵活,它可以根据你的需要生成几乎任何类型的格式化字符串。只需熟悉各种格式说明符,就可以创建出符合你要求的字符串。
C#中@是什么意思
在C#中,@ 符号有几个不同的用途,但最常见的是用于字符串文字前,作为“逐字字符串”的前缀。
1. 逐字字符串(Verbatim String Literals)
当你在字符串前使用 @ 符号时,你可以直接在字符串中编写多行文本,而不需要使用转义字符(\)来表示换行或特殊字符。这在编写包含大量文本或正则表达式的代码时特别有用。
例如:
string normalString = "This is a\nstring with a newline.";
string verbatimString = @"This is a
string with a newline.";
这两个字符串是等效的。在verbatimString中,你可以看到我们直接写入了换行符,而不是使用 \n。
2. 标识符中的关键字
在C#中,有些关键字是不能用作变量名、类名等标识符的。但是,如果你确实需要使用这些关键字作为标识符,你可以在它们前面加上 @ 符号。这通常是不推荐的,因为它可能会使代码难以阅读和维护。
例如:
@class MyClass { } // 这不是推荐的做法,只是展示如何使用@来允许使用关键字作为标识符
3. 文件路径
在某些上下文中,@ 符号也用于文件路径,以避免对反斜杠(\)进行转义。这通常与逐字字符串一起使用。
例如:
string filePath = @"C:\Users\UserName\Documents\file.txt";
在这个例子中,@ 使得路径中的反斜杠被当作普通字符处理,而不是转义字符。
总之,@ 符号在C#中主要用于逐字字符串和在某些情况下用于允许关键字作为标识符。在编写代码时,理解它的用法和上下文是很重要的。