繁体   English   中英

.NET字符串操作区分大小写吗?

[英]Are .NET string operations case sensitive?

.NET字符串函数如IndexOf("blah")区分大小写吗?

从我记得他们不是,但由于某种原因,我看到我的应用程序中的错误,查询字符串中的文本是在驼峰的情况下(如UserID),我正在测试IndexOf("userid")

是的,默认情况下,字符串函数区分大小写。 它们通常具有重载,可以指示所需的字符串比较类型。 对于IndexOf也是如此。 要以不区分大小写的方式获取字符串的索引,您可以执行以下操作:

string blaBlah = "blaBlah";
int idx = blaBlah.IndexOf("blah", StringComparison.OrdinalIgnoreCase);

有一件事我想添加到现有的答案(因为你最初问的是ASP.NET):

某些名称/值集合(例如Request.QueryString以及可能还有Request.Form)不区分大小写。 例如,如果我使用以下URL导航到ASPX页面

http://server/mypage.aspx?user=admin

然后以下两行将返回“admin”:

var user1 = Request.QueryString["user"];
var user2 = Request.QueryString["USER"];

.NET字符串比较确实区分大小写。 在比较它们之前,您可以使用ToUpper()之类的东西来规范化事物。

默认情况下,它们区分大小写,但大多数(如果不是全部)包括IndexOf都有一个带有StringComparison参数的重载。 例如,如果你通过

StringComparison.InvariantCultureIgnoreCase 

作为IndexOf的StringComparison参数,它将(顾名思义)忽略大小写差异

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM