如何移除C#字符串数组元素中的指定字符$?
C#移除字符串数组中指定字符并清理空格的实现方案
给定包含目标字符串的数组和要移除的字符$,要得到无$且格式整洁的结果,可以通过以下几种方式实现:
方法一:基础替换+空格清理(适合单元素数组)
直接针对数组中的目标字符串,先移除指定字符,再清理多余空格:
string[] StringArray = { "foo bar foo $ bar $ foo bar $" }; string check = "$"; // 移除所有$字符 string temp = StringArray[0].Replace(check, string.Empty); // 拆分并重新拼接,去除多余空格和首尾空字符 string result = string.Join(" ", temp.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)); Console.WriteLine(result); // 输出:foo bar foo bar foo bar
方法二:LINQ批量处理(适合多元素数组)
如果数组包含多个需要处理的字符串,用LINQ遍历处理每个元素:
using System.Linq; string[] StringArray = { "foo bar foo $ bar $ foo bar $", "test $ string $ here" }; string check = "$"; var processedArray = StringArray.Select(str => string.Join(" ", str.Replace(check, string.Empty).Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)) ).ToArray(); // 遍历输出结果 foreach (var item in processedArray) { Console.WriteLine(item); }
方法三:正则表达式简化处理
用正则一步完成空格清理,代码更简洁:
using System.Text.RegularExpressions; string[] StringArray = { "foo bar foo $ bar $ foo bar $" }; string check = "$"; // 先移除$,再把所有连续空格替换为单个,最后去除首尾空格 string result = Regex.Replace(StringArray[0].Replace(check, string.Empty), @"\s+", " ").Trim(); Console.WriteLine(result);
说明
Replace(check, string.Empty)会直接移除所有指定的$字符;- 清理空格的步骤是为了避免移除
$后出现的连续空格和末尾空格,保证输出格式和示例一致; - 如果不需要清理空格(比如原字符串中
$前后无空格),可以只保留Replace步骤。
内容的提问来源于stack exchange,提问作者Iseca
相关产品推荐
相关产品推荐

