string类比较相关:

1. string.Compare [static]

1/ string.Compare(string A, string B);

比较两个string,返回整数表示二者在排序顺序中的相对位置(区分大小写)

值小于0则A小于B,值等于0则A等于B,值大于0则A大于B。

2/ string.Compare(string strA, string strB, bool ignoreCase);

同上1并:设置是否忽略大小写,ignoreCase为true忽略,否则不忽略。

3/ string. Compare(string strA, string strB, StringComparison comparisonType);

同上1并:加入比较规则枚举值,用的较少

4/ string.Compare(string strA, string strB, bool ignoreCase, CultureInfo culture);

同上2并:加入区域性标志

其他重载:

string.Compare(string strA, string strB, CultureInfo culture, CompareOptions options);

5/ string.Compare(string strA, int indexA, string strB, int indexB, int length);

分别从两个string的index索引往下找length长度的子字符串进行比较

其他同上重载:

string.Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase);

string.Compare(string strA, int indexA, string strB, int indexB, int length, StringComparison comparisonType);

string.Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase, CultureInfo culture);

string.Compare(string strA, int indexA, string strB, int indexB, int length, CultureInfo culture, CompareOptions options);

string a="SA1";
string b="sa1";
string c="A14E";
string.Compare(a,b); //1
string.Compare(a,b,true); //0 忽略大小写
string.Compare(a,1,c,0,2); //0 取部分

2. string.CompareOrdinal [static]

1/ string.CompareOrdinal(string A, string B);

计算每个字符串中从0索引开始往后的字符的数值来比较两个指定的string,对应的相等则继续比较下一个,不想等则停住返回差值.

2/ string.CompareOrdinal(string strA, int indexA, string strB, int indexB, int length);

同上1并:分别从两个string的index索引往下找length长度的子字符串进行比较

string a = "qa1ava";
string b = "qAava1";
string c = "QAava1";
var o = string.CompareOrdinal(a,b);//32
var k = string.CompareOrdinal(a,c);//32

3. string.CompareTo

a.CompareTo(object value);

a. CompareTo(string strB);

将此实例与指定的 System.String 对象进行比较,并指示此实例在排序顺序中是位于指定的 System.String 之前、之后还是与其出现在同一位置。

返回值:<0则a在前 ==0则位置相同 >0则a在后

string a = "a1ava";
string b = "Cava1";
var o = a.CompareTo(b); //-1

Compare相关返回都为int值,而Equals则返回bool值

4. string.Equals

a.Equals(string value);如果 value 参数的值与此实例相同,则为 true;否则为 false。[not static]

string.Equals(string a,string b) 同上[static]

重载:

a.Equals(string value, StringComparison comparisonType);

string.Equals(string a, string b, StringComparison comparisonType);

同上并: 参数指定区域性、大小写以及比较所用的排序规则。

注:字符串比较时,从第一个字符开始看ASCII码

中文字符比较时,看中文编码,张三和张叁不一样。

拓展:

ASCII码(具体参照:http://tool.oschina.net/commons?type=4)

数字: 0- 9 : 48-57

大写字母:A-Z: 65-90

中间: [ / ] ^ _ 、:91-96

小写字母:a-z: 97-122

string类(四、字符串比较相关)的更多相关文章

  1. Java的API及Object类、String类、字符串缓冲区

    Java 的API 1.1定义 API: Application(应用) Programming(程序) Interface(接口) Java API就是JDK中提供给开发者使用的类,这些类将底层的代 ...

  2. C++学习36 string类和字符串

    C++大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的数据类型 string.string 类处理起字符串来会方便很多,完全可以代替C语言中的 char 数组或 char 指针. ...

  3. C++中String类的字符串分割实现

    最近笔试,经常遇到需要对字符串进行快速分割的情景,主要是在处理输入的时候,而以前练习算法题或笔试,很多时候不用花啥时间考虑测试用例输入的问题.可是C++标准库里面没有像java的String类中提供的 ...

  4. java源码解析之String类(四)

    /* * 返回指定字符第一次出现的字符串内的索引 */ public int indexOf(int ch) { return indexOf(ch, 0); } /* * 返回指定字符第一次出现的字 ...

  5. 100、Java中String类之字符串转为大写

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  6. C++ string类取字符串的左右子串(以特定子串为分界限)

    // Example3.cpp : 定义控制台应用程序的入口点. //以特定单词为分界,求取字符串的左右子串 #include "StdAfx.h" #include <st ...

  7. string类自定义字符串替换函数replace

    #include <iostream> #include <string> using namespace std; /* *  函数功能:将string字符串中的某些字符替换 ...

  8. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第5节 String类_2_字符串的构造方法和直接创建

    string的构造方法 psvm创建main方法 把字节翻译成了小a小b小c.字符串的底层科室用的byte字节数组 Ctrl+鼠标左键点击string 这个byte就保存了字符串底层的字节数据 直接创 ...

  9. 114、Java中String类之字符串文本复杂二次拆分

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

随机推荐

  1. 抛弃鼠标的神器——Vimium

    j: 向下细微滚动窗口.  k:向上细微滚动窗口.(默认的<c-e><c-y> 表示Ctrl+e,按住ctrl再按e,<c-y>同理.在此感谢[Gnat]   ht ...

  2. Linux-软件包管理-RPM安装位置\源码包安装位置

    rpm -ql httpd 查看apache包中文件的安装位置 find /etc -name httpd 查找apache程序的启动执行httpd所在位置 cd /etc/rc.d/init.d 切 ...

  3. 各种Map的区别,想在Map放入自定义顺序的键值对

    今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序. 一.简单介绍Map 在讲解Map排 ...

  4. SIFT 、Hog 、LBP 了解

    SIFT.HOG.LBP,这三者都属于局部特征. 一.三者原理上的区别 1.SIFT:Scale-Invariant Feature Taransform,尺度不变特征变换. 尺度空间的极值检测:搜索 ...

  5. 剑指offer代码 vs2013执行

    方法: 代码文件夹名称为:CodingInterviewChinese2-master 1. 用vs2013加载解决方案 .sln文件 2. 一个解决方案下面有多个项目,通过右键解决方案->属性 ...

  6. mysql create dabase 语法详解

    由于SQL标准的存在,各个关系型数据库管理系统中创建库的语句都差不多 一.mysql 中创建数据库的语法如下: 1.创建数据库的语法: create {database | schema } [if ...

  7. connect: Network is unreachable解決方法

    connect: Network is unreachable解決方法   解決方式:請確認ifcfg-eth0檔案設定 指令如下:   vi /etc/sysconfig/network-scrip ...

  8. Spring mvc注解方式使用事务回滚

    项目名:1ma1ma jdbc.xml <bean  id="dataSource" class="org.apache.commons.dbcp.BasicDat ...

  9. Linux进程间通信的几种方式总结--linux内核剖析(七)

    进程间通信概述 进程通信的目的 传输数据 一个进程须要将它的数据发送给还有一个进程.发送的数据量在一个字节到几M字节之间 共享数据 多个进程想要操作共享数据,一个进程对共享数据 通知事 一个进程须要向 ...

  10. tracert路由跟踪工具使用方法

    1. 路由跟踪在线Tracert工具说明 Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径.Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP ...