thi*_*eek 3 .net c# extension-methods naming
我已经编写了一个字符串操作的扩展方法.我很困惑我该怎么命名 - 因为这将成为团队中前端开发人员将使用的基础库的一部分.这是班级成员的简介.
信息:字符串类型的实用程序扩展方法.此方法的重载可能与空格[与参数中提供的内容]之外的字符相同.
目的:将所有中间或中间空格向下调整到单个空格.
例如:
string Input = "Hello Token1 Token2 Token3 World! ";
string Output = Input.TrimSpacesInBetween();
//Output will be: "Hello Token1 Token2 Token3 World!"
Run Code Online (Sandbox Code Playgroud)
我已阅读[实际上我正在阅读]框架设计指南,但这似乎困扰着我.
我认为有些选择..
TrimIntermediate();
TrimInbetween();
Run Code Online (Sandbox Code Playgroud)
这是递归..
public static class StringExtensions
{
public static string Collapse(this string str)
{
return str.Collapse(' ');
}
public static string Collapse(this string str, char delimeter)
{
char[] delimeterts = new char[1];
delimeterts[0] = delimeter;
str = str.Trim(delimeterts);
int indexOfFirstDelimeter = str.IndexOf(delimeter);
int indexTracker = indexOfFirstDelimeter + 1;
while (str[indexTracker] == delimeter)
indexTracker++;
str = str.Remove(indexOfFirstDelimeter + 1, indexTracker - indexOfFirstDelimeter - 1);
string prevStr = str.Substring(0, indexOfFirstDelimeter + 1);
string nextPart = str.Substring(indexOfFirstDelimeter + 1);
if (indexOfFirstDelimeter != -1)
nextPart = str.Substring(indexOfFirstDelimeter + 1).Collapse(delimeter);
string retStr = prevStr + nextPart;
return retStr;
}
}
Run Code Online (Sandbox Code Playgroud)
不是真正的答案,更多是对您发布的代码的评论......
通过使用正则表达式,您可以使方法更短,更容易理解.(我的猜测是它可能比递归字符串操作表现更好,但你需要进行基准测试才能确定.)
public static class StringExtensions
{
public static string Collapse(this string str)
{
return str.Collapse(' ');
}
public static string Collapse(this string str, char delimiter)
{
str = str.Trim(delimiter);
string delim = delimiter.ToString();
return Regex.Replace(str, Regex.Escape(delim) + "{2,}", delim);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |