首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >替换C#字符串中的多个字符

替换C#字符串中的多个字符
EN

Stack Overflow用户
提问于 2011-09-01 09:40:27
回答 9查看 305.8K关注 0票数 203

有没有更好的替换字符串的方法?

令我惊讶的是,Replace没有接受字符数组或字符串数组。我想我可以写自己的扩展,但我很好奇是否有更好的内置方式来完成以下操作?请注意,最后一个替换是一个字符串,而不是一个字符。

代码语言:javascript
复制
myString.Replace(';', '\n').Replace(',', '\n').Replace('\r', '\n').Replace('\t', '\n').Replace(' ', '\n').Replace("\n\n", "\n");
EN

回答 9

Stack Overflow用户

发布于 2011-09-01 11:15:23

如果您觉得自己特别聪明,并且不想使用Regex:

代码语言:javascript
复制
char[] separators = new char[]{' ',';',',','\r','\t','\n'};

string s = "this;is,\ra\t\n\n\ntest";
string[] temp = s.Split(separators, StringSplitOptions.RemoveEmptyEntries);
s = String.Join("\n", temp);

您也可以很轻松地将其封装在扩展方法中。

编辑:或者只等2分钟,我将不管怎样都要写出来:)

代码语言:javascript
复制
public static class ExtensionMethods
{
   public static string Replace(this string s, char[] separators, string newVal)
   {
       string[] temp;

       temp = s.Split(separators, StringSplitOptions.RemoveEmptyEntries);
       return String.Join( newVal, temp );
   }
}

瞧..。

代码语言:javascript
复制
char[] separators = new char[]{' ',';',',','\r','\t','\n'};
string s = "this;is,\ra\t\n\n\ntest";

s = s.Replace(separators, "\n");
票数 132
EN

Stack Overflow用户

发布于 2011-09-01 11:50:06

您可以使用Linq的聚合函数:

代码语言:javascript
复制
string s = "the\nquick\tbrown\rdog,jumped;over the lazy fox.";
char[] chars = new char[] { ' ', ';', ',', '\r', '\t', '\n' };
string snew = chars.Aggregate(s, (c1, c2) => c1.Replace(c2, '\n'));

下面是扩展方法:

代码语言:javascript
复制
public static string ReplaceAll(this string seed, char[] chars, char replacementCharacter)
{
    return chars.Aggregate(seed, (str, cItem) => str.Replace(cItem, replacementCharacter));
}

扩展方法使用示例:

代码语言:javascript
复制
string snew = s.ReplaceAll(chars, '\n');
票数 70
EN

Stack Overflow用户

发布于 2012-08-05 14:36:38

这是最短的方法:

代码语言:javascript
复制
myString = Regex.Replace(myString, @"[;,\t\r ]|[\n]{2}", "\n");
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7265315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档