我有一个字符串可能包含一些禁用的字符,比如说:
char[] BAD_CHARS = new char[] { '-', '.' };
我希望像“Foo 106.4”这样的字符串表示为“Foo 106”
fooString= fooString.Substring(0, fooString.LastIndexOf('-'));
这将是解决方案......但我正在寻找更有活力的东西。
如何在不执行foreach循环的情况下将上述逻辑应用于BAD_CHARS?
答案 0 :(得分:3)
你可以用string.Split();
这样做string foostring = "foo 204.5-4";
string[] splitted = foostring.Split(BAD_CHARS);
string result = splitted[0];
或者
string foostring = "foo 204.5-4";
string result = foostring.Split(BAD_CHARS)[0];
您可以尝试here
答案 1 :(得分:3)
你非常接近。假设你想停在第一个(不是最后)坏字符,
fooString = fooString.Substring(0, fooString.IndexOfAny(BAD_CHARS));
这样做的好处是不必处理(并分成子串)整个输入。