gpt4 book ai didi

c# - 删除字符串中特定字符后的字符,然后删除子字符串?

转载 作者:IT王子 更新时间:2023-10-29 03:33:32 28 4
gpt4 key购买 nike

当这看起来有点简单并且有大量关于字符串/字符/正则表达式的问题时,我觉得发布这个有点愚蠢,但我找不到我需要的东西(除了另一种语言:Remove All Text After Certain Point)。

我有以下代码:

[Test]
public void stringManipulation()
{
String filename = "testpage.aspx";
String currentFullUrl = "http://localhost:2000/somefolder/myrep/test.aspx?q=qvalue";
String fullUrlWithoutQueryString = currentFullUrl.Replace("?.*", "");
String urlWithoutPageName = fullUrlWithoutQueryString.Remove(fullUrlWithoutQueryString.Length - filename.Length);

String expected = "http://localhost:2000/somefolder/myrep/";
String actual = urlWithoutPageName;
Assert.AreEqual(expected, actual);
}

我尝试了上述问题的解决方案(希望语法相同!)但没有。我想先删除可以是任意可变长度的 queryString,然后再删除可以是任意长度的页面名称。

如何从完整的 URL 中删除查询字符串以使该测试通过?

最佳答案

对于字符串操作,如果你只想杀死?之后的所有东西,你可以这样做

string input = "http://www.somesite.com/somepage.aspx?whatever";
int index = input.IndexOf("?");
if (index >= 0)
input = input.Substring(0, index);

编辑:如果所有内容都在最后一个斜杠之后,则执行类似的操作

string input = "http://www.somesite.com/somepage.aspx?whatever";
int index = input.LastIndexOf("/");
if (index >= 0)
input = input.Substring(0, index); // or index + 1 to keep slash

或者,由于您使用的是 URL,因此您可以像下面的代码那样使用它

System.Uri uri = new Uri("http://www.somesite.com/what/test.aspx?hello=1");
string fixedUri = uri.AbsoluteUri.Replace(uri.Query, string.Empty);

关于c# - 删除字符串中特定字符后的字符,然后删除子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2660723/

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