如果首尾的 - 数量不确定,可以使用以下方法来去掉字符串两端的 - 字符:
使用正则表达式:
using System.Text.RegularExpressions;string input = "---Hello, World!---";
string trimmed = Regex.Replace(input, @"^-*|-*$", "");
// trimmed 为 "Hello, World!"
使用 Trim() 方法:
string input = "---Hello, World!---";
string trimmed = input.Trim('-');
// trimmed 为 "Hello, World!"
Trim() 方法可以去掉字符串两端的指定字符,在这个例子中我们传递 - 作为要去掉的字符。
使用 LINQ:
string input = "---Hello, World!---";
string trimmed = new string(input.SkipWhile(c => c == '-').Reverse().SkipWhile(c => c == '-').Reverse().ToArray());
// trimmed 为 "Hello, World!"
使用 LINQ 的 SkipWhile() 方法跳过开头的 - 字符,然后使用 Reverse() 方法反转字符串,再次使用 SkipWhile() 方法跳过结尾的 - 字符,最后再次反转字符串得到最终结果。
使用字符串索引:
string input = "---Hello, World!---";
int start = 0, end = input.Length - 1;
while (start < input.Length && input[start] == '-') start++;
while (end >= 0 && input[end] == '-') end--;
string trimmed = input.Substring(start, end - start + 1);
// trimmed 为 "Hello, World!"
使用两个循环分别找到字符串开头和结尾第一个不是 - 的字符的位置,然后使用 Substring() 方法截取中间的子字符串。