关于 c#:如何从特定字符的链接中提取子字符串? | 珊瑚贝

How to substring from a link at specific character?


我不知道它有什么问题?我试图解决它,但我没有得到任何结果!!

我的浏览器链接

1
http://localhost:49496/Activated.aspx?id=2

代码是

1
2
3
4
5
string uri = HttpContext.Current.Request.Url.AbsoluteUri;
            int num1 = uri.IndexOf(‘=’);
            int num2=uri.Length1;

            string ID = uri.Substring(num1,num2);

错误提示:

索引和长度必须引用字符串中的位置。
参数名称:长度

enter
那么,它有什么问题呢?!

  • num2 是要占用多少个字符。不是最后一个索引。


如果你只是想隔离参数:

1
string ID = uri.Substring(num1);

(David Pilkington 对失败原因的解释是正确的。)

  • … 或 num1+1 假设他不想要 =,并且还假设永远不会有另一个参数…并且还假设总会有至少一个参数。


问题在于第二个参数是您要查找的子字符串的长度,并且 num2 太大而无法进行操作

将第二个参数改为uri.Length – num1

另一种方法是不包含第二个参数。在这种情况下,从您提供的索引中获取子字符串,直到字符串结尾。

在这里,阅读有关该方法的 MSDN 文档,您会发现哪里出错了

String.Substring 方法 (Int32, Int32)

你最好的选择是

1
uri.Substring(uri.IndexOf(‘=’)+1);

子字符串不是执行您正在尝试执行的操作的方法…这是获取查询字符串参数 id.

的值

你得到一个查询字符串参数,如:

1
string id = Request.QueryString[“id”];

如果你的 id 实际上是一个 int,你可以这样做:

1
2
3
4
5
6
int realId = 0;
string id = Request.QueryString[“id”];
if (Int32.TryParse(id, out realId))
{
    //do something with realId    
}
  • 非常感谢.. 最佳答案 <3 :)
  • @F505,同意。这就是为什么我赞成这个答案(它比我的好),也许你应该在将其标记为你的答案之前做同样的事情?


Uri 已经提供了搜索方法,不需要自己做:

1
2
Uri uri = new Uri(“http://localhost:49496/Activated.aspx?id=2”);
Console.WriteLine(uri.Query.Split(‘=’)[1]);


请注意,在您的实际(生产)代码中,您可能希望包含一些错误检查以验证查询部分是否包含 “id”。


来源:https://www.codenong.com/20153961/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?