zoukankan
html css js c++ java
.NET 2.0中的字符串比较
平时编写代码的时候,字符串可能是大家接触得比较多的,所使用的字符串操作也应该得比较多的.在字符串比较方面,DOTNET2.0新增了一个枚举StringComparison:
namespace
System
{
public
enum
StringComparison
{
CurrentCulture,
CurrentCultureIgnoreCase,
InvariantCulture,
InvariantCultureIgnoreCase,
Ordinal,
OrdinalIgnoreCase
}
}
可能大家平时在进行字符串比较的时候根本没有考虑那么多,
"
= =
"
,
"
Eaqual()
"
用得不亦乐乎,其实这里面的东西也挺多,性能,区域信息等
1
.首先是StringComparison.Ordinal 在进行调用String.Compare(string1,string2,StringComparison.Ordinal)的时候是进行非语言(non
-
linguistic)上的比较,API运行时将会对两个字符串进行byte级别的比较,因此这种比较是比较严格和准确的,并且在性能上也很好,一般通过StringComparison.Ordinal来进行比较比使用String.Compare(string1,string2)来比较要快10倍左右.(可以写一个简单的小程序验证,这个挺让我惊讶,因为平时使用String.Compare从来就没想过那么多).StringComparison.OrdinalIgnoreCase就是忽略大小写的比较,同样是byte级别的比较.性能稍弱于StringComparison.Ordinal.
2
.StringComparison.CurrentCulture 是在当前的区域信息下进行比较,这是String.Compare在没有指定StringComparison的时候默认的比较方式.例子如下:
Thread.CurrentThread.CurrentCulture
=
new
CultureInfo(
"
en-US
"
);
//
当前的区域信息是美国
string
s1
=
"
visualstudio
"
;
string
s2
=
"
windows
"
;
Console.WriteLine(String.Compare(s1, s2,StringComparison.CurrentCulture));
//
输出"-1"
Thread.CurrentThread.CurrentCulture
=
new
CultureInfo(
"
sv-SE
"
);
//
当前的区域信息是瑞典
Console.WriteLine(String.Compare(s1, s2,StringComparison.CurrentCulture));
//
输出"1"StringComarison.CurrentCultureIgnoreCase指在当前区域信息下忽略大小写的比较.
3
.StringComarison.InvariantCulture 使用StringComarison.InvariantCulture来进行字符串比较,在任何系统中(不同的culture)比较都将得到相同的结果,他是使用CultureInfo.InvariantCulture的静态成员CompareInfo来进行比较操作的.例子如下:
Thread.CurrentThread.CurrentCulture
=
new
CultureInfo(
"
en-US
"
);
//
当前的区域信息是美国
string
s1
=
"
visualstudio
"
;
string
s2
=
"
windows
"
;
Console.WriteLine(String.Compare(s1, s2,StringComparison.InvariantCulture));
//
输出"-1"
Thread.CurrentThread.CurrentCulture
=
new
CultureInfo(
"
sv-SE
"
);
//
当前的区域信息是瑞典
Console.WriteLine(String.Compare(s1, s2,StringComparison.InvariantCulture));
//
输出"-1"
查看全文
相关阅读:
HDU5794 A Simple Chess 容斥+lucas
HDU5790 Prefix 字典树+主席树
HDU5787 K-wolf Number 数位dp
HDU5758 Explorer Bo 树形dp
HDU5764 After a Sleepless Night 树形乱搞题
HDU5780 gcd (BestCoder Round #85 E) 欧拉函数预处理——分块优化
HDU5779 Tower Defence (BestCoder Round #85 D) 计数dp
HDU 5778 abs (BestCoder Round #85 C)素数筛+暴力
HDU5777 domino (BestCoder Round #85 B) 思路题+排序
poj 1185 状态压缩
原文地址:https://www.cnblogs.com/cxd4321/p/667768.html
最新文章
公路通行税Ceoi99(BFS+图的直径)
UVA10269 Adventure of Super Mario(Floyd+DP)
2017年1月/4月新番表中文版
【搬运】表变量与临时表的优缺点
Ajax异步请求返回文件流(eg:导出文件时,直接将导出数据用文件流的形式返回客户端供客户下载)
使用EntityFramework调用存储过程并获取存储过程返回的结果集
LeetCode Array Easy 485. Max Consecutive Ones
LeetCode Array Easy 448. Find All Numbers Disappeared in an Array
使用jquery.validate组件进行前端数据验证并实现异步提交前验证检查
LeetCode Linked List Easy 83. Remove Duplicates from Sorted List
热门文章
LeetCode Linked List Easy 21. Merge Two Sorted Lists
解决echarts内存泄露的问题
配置进程外Session 同时解决一个奇怪的BUG 因为SQLserver 服务器名不是默认的.或者localhost而引发的一系列问题
linux上安装Loadrunner负载机
Loadrunner11 下载、安装与破解
linux上安装Jmeter负载机出现问题的解决方式
Lr 关联设置
Lr 参数化 策略 代理录制
性能测试基础
HDU5800 To My Girlfriend 背包计数dp
Copyright © 2011-2022 走看看