C#字符串操作深度解析:转换、处理与技巧

需积分: 3 11 下载量 173 浏览量 更新于2024-11-26 收藏 316KB DOC 举报
"C# 字符串详细使用涵盖了多种在C#编程中处理字符串的关键操作,包括转换、分割、特殊语法、格式化、错误处理等方面。以下是对这些知识点的详细说明: 1. **Convert.ToInt32与Int32.Parse的区别** - `Convert.ToInt32` 是一个更通用的方法,它可以尝试将各种类型转换为整数,不仅仅是字符串。如果转换失败,它会抛出`FormatException`或`OverflowException`。 - `Int32.Parse` 直接针对字符串进行解析,如果字符串不能被解析为整数,也会抛出`FormatException`。相比于`Convert.ToInt32`,它通常更快,但使用时需确保输入字符串是可解析的整数形式。 - `Int32.TryParse` 提供了一个安全的转换方式,它不会抛出异常,而是通过返回值来指示转换是否成功,并在成功时将结果放入输出参数。 2. **Split的3种用法** - 基本用法:`string[] parts = input.Split(delimiter);` 通过指定的分隔符将字符串分割成多个子字符串数组。 - 限制分片数量:`string[] parts = input.Split(delimiter, count);` 可以限制最多返回的子字符串数量。 - 使用选项:`string[] parts = input.Split(new string[] { delimiter }, StringSplitOptions option);` 可以指定如何处理空的分片,如忽略它们。 3. **字符串字面量的@"abc"与"abc"区别** - `@"abc"` 是`verbatim`(字面量)字符串,它不解释反斜杠 `\`,允许在字符串中直接写转义序列,如`\n`,`\t`等。 - `"abc"` 是常规字符串,反斜杠会被当作转义字符处理,例如`\n`会被解释为换行。 4. **保留2位有效小数及四舍五入** - 使用`Decimal.Round`或`Double.Round`方法可以实现小数的四舍五入,配合`ToString("0.##")`格式化字符串可以保留2位有效数字。 5. **URL传递中文的解决方案** - URL编码:使用`HttpUtility.UrlEncode`或`Uri.EscapeDataString`方法将中文字符编码为 `%xx` 形式的UTF-8编码,以便在网络传输中正确表示。 6. **123456789转为12-345-6789的3种方法** - 使用`Substring`和`Insert`方法:将原始字符串分割成三部分,然后在适当位置插入破折号。 - 正则表达式替换:利用正则表达式匹配并替换模式。 - 使用`String.Format`结合字符串格式化规则。 7. **交换两个指定位置字符的4种方法** - 使用数组:将字符串转换为字符数组,交换对应位置的元素,再转换回字符串。 - 切片和拼接:创建两个子字符串,交换子字符串,然后拼接。 - 使用`StringBuilder`:在`StringBuilder`对象中进行交换,再转换为字符串。 - 使用指针和`unsafe`代码:在内存中直接交换字符(仅适用于.NET Framework的非托管代码)。 8. **“%10”的妙用** - 在字符串格式化中,`%10d`表示占10个字符宽度的整数,不足的部分用空格填充。这在格式化输出时非常有用。 9. **输出21个"A"的巧妙做法** - 利用字符串的重复操作:`string output = "A".PadRight(21);` - 使用`Enumerable.Repeat`生成重复序列,然后连接成字符串:`string output = string.Concat(Enumerable.Repeat("A", 21));` 以上是C#字符串处理中的一些常见操作和技巧,掌握这些可以帮助开发者更高效地处理字符串问题。
2007-04-19 上传