C# 查找字符串常用方法

Indexof(Char C):  找到第一个字符c的index,如果没找到返回-1

Indexof(string str):  找到str的index,如果没找到返回-1

LastIndexof(string str):  返回当前字符或字符串的最后一个匹配项位置

具体如下:

<think>嗯,用户现在想了解C#字符串常用方法,我之前已经回答过如何用C#处理逗号分隔的字符串计算平均值,其中涉及了一些字符串处理的方法,比如Split、Trim和转换方法。现在需要根据用户提供的引用内容,结合之前的回答,总结出C#字符串常用方法。 首先,用户给的引用里提到了TrimStart、TrimEnd、Trim、Split、Replace、Concat、Join等方法。之前的回答中也用到了Split和Trim来处理输入字符串,还有TryParse进行转换。需要把这些方法整理出来,分门别类,可能分成转换类、清理类、分割拼接类、替换格式化类等。 用户可能希望有一个结构清晰的总结,每个方法有简要说明和示例代码。要注意引用中的内容,比如引用2和3提到了Trim相关的方法,Split,还有Concat和Join,这些都需要包含进去。同时,之前的回答里用到了Split和Trim,还有TryParse,所以转换方法也需要提到。 需要检查是否有遗漏的常用方法,比如Substring、Contains、StartsWith、EndsWith、IndexOf等,虽然用户提供的引用里没提到,但这些也是常用的,可能需要补充。但根据引用内容,用户可能更关注他们提到的那些方法,所以需要平衡。 另外,用户提到的引用1中提到了Parse方法,但之前的回答里用的是TryParse,需要指出两者的区别,比如Parse会抛异常,而TryParse更安全。这可能属于转换类的方法。 还要注意示例代码的正确性,比如Trim的使用,Split的参数,以及Join和Concat的区别。例如,Concat是拼接字符串,而Join是用分隔符连接数组。Split的多种用法,比如分割选项StringSplitOptions.RemoveEmptyEntries,避免空字符串。 可能需要将方法分类,比如: 1. 类型转换:Parse、TryParse、ToString 2. 空白处理:Trim、TrimStart、TrimEnd 3. 分割与拼接:Split、Join、Concat 4. 替换与格式化:Replace、ToLower、ToUpper、格式化输出 5. 其他常用:Contains、Substring、IndexOf等 但根据引用内容,用户提供的引用没有提到Contains等方法,所以可能需要根据之前的回答和引用内容来决定是否包含。用户的问题明确是“常用方法总结”,所以应该尽量全面,但重点放在引用中提到的方法。 需要确保每个方法都有示例代码,并且代码符合C#语法。例如,在Split中使用StringSplitOptions.RemoveEmptyEntries来避免空元素,这在处理用户输入时很实用,比如多个逗号的情况。 另外,格式化输出在之前的回答中提到过ToString("F2"),这也需要包含在格式化部分。引用3中提到的ToLower和ToUpper,以及Replace,都需要举例说明。 最后,相关问题部分需要考虑用户可能进一步的问题,比如如何选择Parse和TryParse,性能优化,处理空值等,这些都是之前回答中涉及的,或者引用中提到的方法可能引发的问题。</think>### C# 字符串常用方法总结 以下是C#字符串处理的常用方法分类整理,结合类型转换、清理、分割、拼接等核心场景,并附示例代码说明: --- #### 一、**类型转换方法** 1. **`Parse` 与 `TryParse`** - `Parse`:将字符串转换为数值类型(可能抛出异常) ```csharp int num = int.Parse("123"); // 成功返回123 // int.Parse("abc"); // 抛出FormatException[^1] ``` - `TryParse`:安全转换(推荐使用) ```csharp bool success = int.TryParse("123", out int result); // success=true, result=123 ``` 2. **`ToString`** 将任意类型转为字符串,支持格式化: ```csharp double value = 3.1415; string str1 = value.ToString(); // "3.1415" string str2 = value.ToString("F2"); // "3.14"[^2] ``` --- #### 二、**空白处理** 1. **`Trim()`** 去除首尾空格或指定字符: ```csharp string str = " Hello "; Console.WriteLine($"-{str.Trim()}-"); // 输出:-Hello-[^3] ``` 2. **`TrimStart()` / `TrimEnd()`** 仅处理开头或结尾: ```csharp string str = " text "; string trimmedStart = str.TrimStart(); // "text " string trimmedEnd = str.TrimEnd(); // " text" ``` --- #### 三、**分割与拼接** 1. **`Split()`** 按分隔符分割字符串为数组: ```csharp string input = "A,B,C"; string[] parts = input.Split(','); // ["A", "B", "C"] // 过滤空值 string[] filtered = input.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries); ``` 2. **`Join()`** 连接字符串数组: ```csharp string[] arr = {"你", "我", "他"}; string joined = string.Join("和", arr); // "你和我和他"[^3] ``` 3. **`Concat()`** 直接拼接多个字符串: ```csharp string s = string.Concat("Hello", " ", "World"); // "Hello World" ``` --- #### 四、**替换与格式化** 1. **`Replace()`** 替换子字符串: ```csharp string original = "Hello World"; string replaced = original.Replace("World", "C#"); // "Hello C#" ``` 2. **大小写转换** ```csharp string mixedCase = "AbCdEf"; string lower = mixedCase.ToLower(); // "abcdef" string upper = mixedCase.ToUpper(); // "ABCDEF"[^3] ``` --- #### 五、**其他常用方法** 1. **`Contains()`** 检查子字符串是否存在: ```csharp bool hasWord = "C# Programming".Contains("Pro"); // true ``` 2. **`Substring()`** 截取子字符串: ```csharp string str = "ABCDEF"; string sub = str.Substring(2, 3); // "CDE"(从索引2开始取3个字符) ``` 3. **`IndexOf()`** 查找字符/子串位置: ```csharp int index = "Hello".IndexOf('e'); // 1(索引从0开始) ``` --- ### 代码示例:综合应用 ```csharp // 处理用户输入并拼接结果 string input = " apple, banana, , cherry "; string[] fruits = input.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries) .Select(s => s.Trim().ToUpper()) .ToArray(); string output = string.Join(" | ", fruits); // "APPLE | BANANA | CHERRY" ``` --- ### 选择建议 - **安全转换**:优先使用 `TryParse` 避免异常[^1] - **空值处理**:`Split` 时添加 `StringSplitOptions.RemoveEmptyEntries` - **性能优化**:大量字符串操作建议使用 `StringBuilder` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值