c#如何把字符串中的指定字符删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何把字符串中的指定字符删除相关的知识,希望对你有一定的参考价值。

参考技术A

string s = "abc";

int len = s.Length;

char[] s2 = new char[len];

int i2 = 0;

for (int i = 0; i < len; i++)

char c = s[i];

if (c != '\\r' && c != '\\n' && c != '\\t')

s2[i2++] = c;

return new String(s2, 0, i2);

扩展资料:

C#常用的字符串操作方法:替换、删除、拆分字符串

1、C#替换字符串):

public string Replace(char oldChar,char newChar); 在对象中寻找oldChar,如果寻找到,就用newChar将oldChar替换掉。

如:

string st = "abcdef";

string newstring = st.Replace('a', 'x');

Console.WriteLine(newstring);   //即:xbcdef

2、Remove(C#删除字符串):

public string Remove(int startIndex); 从startIndex位置开始,删除此位置后所有的字符(包括当前位置所指定的字符)。

如:  

string st = "abcdef";

string newstring = st.Remove(4);

Console.WriteLine(newstring);  //即:abcd

3、Substring(C#字符串截取):

public string Substring(int startIndex); 从startIndex位置开始,提取此位置后所有的字符(包括当前位置所指定的字符)。

如:  

string st = "abcdef";

string newstring = st.Substring(2);

Console.WriteLine(newstring);  //即:cdef

public string Substring(int startIndex,int count); 从startIndex位置开始,提取count个字符。
如:  

string st = "abcdef";

string newstring = st.Substring(2,2);

Console.WriteLine(newstring);  //即:cd

4、Split(C#拆分字符串)

public string[] Split ( params char[] separator ):根据separator 指定的没有字符分隔此实例中子字符串成为Unicode字符数组, separator可以是不包含分隔符的空数组或空引用。

public string[] Split ( char[] separator, int count ):参数count 指定要返回的子字符串的最大数量。 

如:

string st = "语文|数学|英语|物理";

string[] split = st.Split(new char[]'|',2);

for (int i = 0; i < split.Length; i++)

Console.WriteLine(split[i]);


如何从 C# 中的字符串中删除“ ”?我可以使用正则表达式吗?

【中文标题】如何从 C# 中的字符串中删除“\\r\\n”?我可以使用正则表达式吗?【英文标题】:How can I remove "\r\n" from a string in C#? Can I use a regular expression?如何从 C# 中的字符串中删除“\r\n”?我可以使用正则表达式吗? 【发布时间】:2010-12-31 05:12:18 【问题描述】:

我正在尝试从 ASP.NET 文本区域中保留字符串。我需要去掉回车换行符,然后把剩下的东西分解成一个 50 个字符的字符串数组。

到目前为止我有这个

var commentTxt = new string[]  ;
var cmtTb = GridView1.Rows[rowIndex].FindControl("txtComments") as TextBox;
if (cmtTb != null)
  commentTxt = cmtTb.Text.Length > 50
      ? new[] cmtTb.Text.Substring(0, 50), cmtTb.Text.Substring(51)
      : new[] cmtTb.Text;

它工作正常,但我没有去掉 CrLf 字符。我该如何正确地做到这一点?

【问题讨论】:

【参考方案1】:

用途:

string json = "\r\n \"LOINC_NUM\": \"10362-2\",\r\n";
var result = JObject.Parse(json.Replace(System.Environment.NewLine, string.Empty));

【讨论】:

string json= "\r\n \"LOINC_NUM\": \"10362-2\",\r\n";【参考方案2】:

这是完美的方法:

请注意,Environment.NewLine 适用于 Microsoft 平台。

除了上述之外,还需要在单独函数中添加\r\n

以下代码支持您在 Linux、Windows 或 Mac 上输入:

var stringTest = "\r Test\nThe Quick\r\n brown fox";

Console.WriteLine("Original is:");
Console.WriteLine(stringTest);
Console.WriteLine("-------------");

stringTest = stringTest.Trim().Replace("\r", string.Empty);
stringTest = stringTest.Trim().Replace("\n", string.Empty);
stringTest = stringTest.Replace(Environment.NewLine, string.Empty);

Console.WriteLine("Output is : ");
Console.WriteLine(stringTest);
Console.ReadLine();

【讨论】:

【参考方案3】:

.Trim() 函数将为您完成所有工作!

我正在尝试上面的代码,但是在“trim”功能之后,我注意到它甚至在它到达替换代码之前都是“干净的”!

String input:       "This is an example string.\r\n\r\n"
Trim method result: "This is an example string."

来源:http://www.dotnetperls.com/trim

【讨论】:

-1 因为这只适用于字符串的开头和结尾。 @im1dermike 我认为投反对票有点不必要,我刚刚发现并使用了它,绝对是我的最佳选择 @SeanMissingham 仅仅因为一个不充分的答案对你有用并不意味着它是一个好的答案。【参考方案4】:

试试这个:

private void txtEntry_KeyUp(object sender, KeyEventArgs e)
    
        if (e.KeyCode == Keys.Enter)
        
            string trimText;

            trimText = this.txtEntry.Text.Replace("\r\n", "").ToString();
            this.txtEntry.Text = trimText;
            btnEnter.PerformClick();
        
    

【讨论】:

使用 Replace("\r", "").Replace("\n", "") 支持更广泛的平台特定行尾序列。【参考方案5】:

更好的代码:

yourstring = yourstring.Replace(System.Environment.NewLine, string.Empty);

【讨论】:

-1:这仅适用于在相同环境中创建文本的情况。【参考方案6】:

这会在换行符的任何组合上拆分字符串并用空格连接它们,假设您确实想要换行符所在的空格。

var oldString = "the quick brown\rfox jumped over\nthe box\r\nand landed on some rocks.";
var newString = string.Join(" ", Regex.Split(oldString, @"(?:\r\n|\n|\r)"));
Console.Write(newString);

// prints:
// the quick brown fox jumped over the box and landed on some rocks.

【讨论】:

更好的选择...永远! 谢谢,这为我节省了很多时间! 这对我帮助最大。 最佳选择,我正是在寻找这个!谢谢。【参考方案7】:

假设您想用 something 替换换行符,这样就可以:

the quick brown fox\r\n
jumped over the lazy dog\r\n

不会是这样的:

the quick brown foxjumped over the lazy dog

我会这样做:

string[] SplitIntoChunks(string text, int size)

    string[] chunk = new string[(text.Length / size) + 1];
    int chunkIdx = 0;
    for (int offset = 0; offset < text.Length; offset += size)
    
        chunk[chunkIdx++] = text.Substring(offset, size);
    
    return chunk;
    

string[] GetComments()

    var cmtTb = GridView1.Rows[rowIndex].FindControl("txtComments") as TextBox; 
    if (cmtTb == null)
    
        return new string[] ;
    

    // I assume you don't want to run the text of the two lines together?
    var text = cmtTb.Text.Replace(Environment.Newline, " ");
    return SplitIntoChunks(text, 50);    

如果语法不完美,我深表歉意;我现在不在使用 C# 的机器上。

【讨论】:

【参考方案8】:

你可以使用正则表达式,是的,但是一个简单的 string.Replace() 可能就足够了。

 myString = myString.Replace("\r\n", string.Empty);

【讨论】:

Environment.NewLine 将是服务器对新行的想法。此文本来自客户端,它可能使用不同的字符换行。这是一个答案,显示了不同浏览器对新行的使用:***.com/questions/1155678/… 在它们之间放一个管道,一行就可以搞定myString.Replace("\r|\n", string.Empty); 对不起,应该是Regex.Replace(myString, "\n|\r", String.Empty);,那么它将一次性替换两者

以上是关于c#如何把字符串中的指定字符删除的主要内容,如果未能解决你的问题,请参考以下文章

python如何删除字符串中指定位置的字符

SQL如何将一列表中的字符替换成另外一个字符

在程序中如何去掉字符串中的空字符

急!如何批量删除数据库中以特定字符开头和结尾的字符串

如何对输入的指定个数的字符串进行按字典序排序?

python中如何去掉字符串的空格