我想使用Trim从字符串中删除一些特定字符。问题是它只删除它的第一个特定字符,但我希望它遍历整个字符串。这是代码:
string mySt1 = mySt2.Trim('a', 'b', 'c');
因此,如果mySt2是' a b c d'例如,它删除了字母' a'只要。 可能是什么问题?
答案 0 :(得分:0)
你的代码是否编译?如果有的话,我有点惊讶,因为在C#中,修剪方法不需要参数(' a',' b',' c') 。这听起来像mySt2最终为#34; b c d"。是吗?
你问题的答案"可能是什么问题?"在备注部分的Microsoft修订方法中出现:https://msdn.microsoft.com/en-us/library/t97s7bs3(v=vs.110).aspx
Trim方法从当前字符串中删除所有前导和尾随空白字符。遇到非空白字符时,每个前导和尾随修剪操作都会停止。
所以在你的情况下,一旦Trim找到第一个' a'它就会剥离第一个' a'并返回字符串的其余部分。它并没有走得更远,因为''和' c'参数被忽略。
如果要删除出现在字符串中任何位置的多个单个字符,您可能需要使用方法的组合。我没有C#编译器,因此我无法为您编写代码。但是我已经用很多语言编写了大量的字符串操作代码(Pascal,Snobol,Python,C等),因此我可以使用Microsoft的C#String Methods页面{{3]中的方法为您提供一系列可能的步骤。 }}
对于要在字符串中删除的每个特定字符,请在步骤1中找到要在字符串中删除的特定字符。
查找您要查找的下一个字符(如果有); (的IndexOf(CHAR))
- 醇>
在要删除的字符之前连接字符,并删除要删除的字符后的字符,并保存生成的字符串。 (String.Remove方法(Int32,Int32))
所以,最后,给出字符串" Abracadabra shazam! ",如果你想删除所有(' a','' c' c')s(但不是空格),你的代码将会离开你跟" Ardr shzm! " (注意' A'!=' a')。
访问“删除方法”页面并查看“示例”以了解该想法,并了解正确的语法。
答案 1 :(得分:0)
只需使用替换。这样的事情应该有效:
var mySt1 = mySt2.Replace(new char[] {'a', 'b', 'c'}, string.Empty);
答案 2 :(得分:0)
我认为你可以使用replace方法。
https://msdn.microsoft.com/en-us/library/fk49wtc1(v=vs.110).aspx
string mySt1 = mySt2
.Replace("a", string.Empty)
.Replace("b", string.Empty)
.Replace("c", string.Empty);