gpt4 book ai didi

c# - 字符串操作 - 这可以做得更好吗?

转载 作者:行者123 更新时间:2023-12-02 01:18:49 26 4
gpt4 key购买 nike

现在我们正在手动登录,要求之一是拥有登录页面通知用户他们要登录哪个模块。现在我唯一要做的就是工作他们要登陆的 URL 位于查询字符串中,如下所示:

Request.QueryString["ReturnURL"]

具有这样的值:

~/moduleFolder/SpecificPage.aspx

现在这是我创建的方法,可以通过正斜杠将该 URL 分开,将该段分隔开,将第一个单词大写,删除第一个斜杠,并将其分配回标签以进行显示。代码示例如下:

string incomingName = Request.QueryString["ReturnURL"].ToString();
int first = incomingName.IndexOf(@"/");
int last = incomingName.LastIndexOf(@"/");
string tempName = incomingName.Substring(first, last - first);
string seperatedName = Regex.Replace(tempName, "([a-z])([A-Z])", "$1 $2");
string upperCased = seperatedName.Replace("/", "");
string portalName = char.ToUpper(upperCased[0]) + upperCased.Substring(1);
lblPortalName.Text = portalName;

是否有一种更干净或更好的方法来编写此代码,而无需使用新字符串的许多不同实例?

最佳答案

是的,更干净的方法是这样的:

private static string GetMiddleSegment(string URL)
{
// you should probably use a library function for this kind of thing

int first = URL.IndexOf(@"/");
int last = URL.LastIndexOf(@"/");
return URL.Substring(first + 1, last - first - 1); // this is correct, right?
}

private static string SeparateWords(string camelCase)
{
return Regex.Replace(camelCase, "([a-z])([A-Z])", "$1 $2");
}

private static string Uppercase(string name)
{
return char.ToUpper(name[0]) + name.Substring(1);
}

// ...

string incomingURL = Request.QueryString["ReturnURL"].ToString();
string nameSegment = GetMiddleSegment(incomingURL);
string displayName = Uppercase(SeparateWords(nameSegment));
lblPortalName.Text = displayName;

您会注意到我的代码并没有创建更少的字符串实例。这是因为此处创建的字符串实例的数量绝对与您在处理请求时的性能没有任何关系。

关于c# - 字符串操作 - 这可以做得更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4474504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com