zoukankan      html  css  js  c++  java
  • 【C#】【转载】C#字符串比较方法

    转自http://www.cnblogs.com/sicket/archive/2010/10/18/1853950.html

    用C#比较字符串有多种方法,如:

    1. string.Compare(x,y);
    2. string.Equals(x,y) ;

    如果要不区分大小写进行比较,则对应为:
    string.Compare(x,y);
    string.Equals(x,y);

    注:string.Compare比较结果的含义:

    含义

    小于零

    x 小于 y。 或 x 为 空引用(在 Visual Basic 中为 Nothing)。

    x 等于 y。

    大于零

    x 大于 y。 或 y 为 空引用(在 Visual Basic 中为 Nothing)。

    string.Equals比较结果的含义为:

    含义

    true

    x 等于 y。

    false

    x 不等 y。


    其它常用字符串操作:

    1、从字符串中提取子串
    StringBuilder 类没有支持子串的方法,因此必须用String类来提取。

    string mystring="My name is ynn.";
    //Displays "name is ynn."
    Console.WriteLine(mystring.Substring( 3 ));
    //Displays "ynn"
    Console.WriteLine(mystring.Substring( 11,3 ));

    2、比较字符串
    String 类有四种方法:Compare( )、CompareTo( )、CompareOrdinal()、Equals( )。
    Compare( )方法是CompareTo( )方法的静态版本。只要使用“=”运算符,就会调用Equals( )方法,的以Equals( )方法与“=”是等价的。CompareOrdinal( )方法对两个字符串比较不考本地语言与文件。
    示例:

    int result;
    bool bresult;
    s1
    ="aaaa";
    s2
    ="bbbb";
    //Compare( )method
    //result值为“0”表示等,小于零表示 s1 < s2,大于零表示 s1 > s2
    result=String.Compare(s1,s2);
    result
    =s1.CompareTo( s2 );
    result
    =String.CompareOrdinal(s1,s2);
    bresult
    =s1.Equals( s2 );
    bresult
    =String.Equals( s1,s2 );


    一个例外情况是,两个字符串都是内置的,并相等,静态方法要快得多。

    3、字符串格式化

    3.1 格式化数字
    格式字符    说明和关联属性 


    c、C       货币格式。
    d、D       十进制格式。 
    e、E       科学计数(指数)格式。 
    f、F       固定点格式。 
    g、G       常规格式。 
    n、N       数字格式。 
    r、R       往返格式,确保将已转换成字符串的数字转换回数字时具有与原数字相同的值。 
    x、X       十六进制格式。


    double val=Math.PI;
    Console.WriteLine(val.ToString( ));
    //displays 3.14159265358979
    Console.WriteLine(val.ToString("E"));//displays 3.141593E+000
    Console.WriteLine(val.ToString("F3");//displays 3.142
    int val=65535;
    Console.WriteLine(val.ToString(
    "x")); //displays ffff
    Console.WriteLine(val.ToString("X")); //displays FFFF
    Single val=0.123F;
    Console.WriteLine(val.ToString(
    "p")); //displays 12.30 %
    Console.WriteLine(val.ToString("p1")); //displays 12.3 %


    默认格式化会在数字和百分号之间放入一个空格。定制方法如下: 
    其中NumberFormatInfo类是System.Globalization命名空间的一个成员,因此该命名空间必须导入到程序中。

    Single val=0.123F;
    object myobj=NumberFormatInfo.CurrentInfo.Clone( ) as NumberFormatInfo;
    NumberFormatInfo myformat
    =myobj as NumberFormatInfo;
    myformat.PercentPositivePattern
    =1;
    Console.WriteLine(val.ToString(
    "p",myformat)); //displays 12.30%;
    Console.WriteLine(val.ToString("p1",myformat)); //displays 12.3%;


    格式化具有很大的灵活性。下面的例子演示一个没有意义的货币结构:

    double val=1234567.89;
    int [] groupsize={2,1,3};
    object myobj=NumberFormatInfo.CurrentInfo.Clone( );
    NumberFormatInfo mycurrency
    =myobj as NumberFormatInfo;
    mycurrency.CurrencySymbol
    ="#"; //符号
    mycurrency.CurrencyDecimalSeparator=":"; //小数点
    mycurrency.CurrencyGroupSeparator="_"; //分隔符
    mycurrency.CurrencyGroupSizes=groupsize;
    // 输出 #1_234_5_67:89
    Console.WriteLine(val.ToString("C",mycurrency));

    3.2 格式化日期
    输出形式取决于用户计算机的文化设置。

    using System;
    using System.Globalization;
    publicclass MainClass
    {
      
    publicstaticvoid Main(string[] args)
      {
    DateTime dt
    = DateTime.Now;
    String[] format
    ={"d","D","f","F","g","G","m","r","s","t","T","u", "U","y","dddd, MMMM ddyyyy","ddd, MMM d \"'\"yy","dddd, MMMMdd","M/yy","dd-MM-yy",};
    String date;
    for (int i =0; i < format.Length; i++)
    {
    date
    = dt.ToString(format[i],DateTimeFormatInfo.InvariantInfo);
    Console.WriteLine(String.Concat(format[i],
    " :" , date));
    }
    }
    }
    d :
    07/11/2004<=======输出
    D :Sunday,
    11 July 2004
    f :Sunday,
    11 July 200410:52
    F :Sunday,
    11 July 200410:52:36
    g :
    07/11/200410:52
    G :
    07/11/200410:52:36
    m :July
    11
    r :Sun,
    11 Jul 200410:52:36 GMT
    s :
    2004-07-11T10:52:36
    t :
    10:52
    T :
    10:52:36
    u :
    2004-07-1110:52:36Z
    U :Sunday,
    11 July 200402:52:36
    y :
    2004 July
    dddd, MMMM dd yyyy :Sunday, July
    112004
    ddd, MMM d
    "'"yy :Sun, Jul 11'04
    dddd, MMMM dd :Sunday, July 11
    M
    /yy :7/04
    dd
    -MM-yy :11-07-04

    3.3 格式化枚举

    enum classmen
    {
    ynn
    =1,
    yly
    =2,
    css
    =3,
    C
    ++=4
    }
    //获取枚举字符串信息如下:
    classmen myclassmen=classmen.yly;
    Console.WriteLine(myclassmen.ToString( ));
    //displays yly
    Console.WriteLine(myclassmen.ToString("d")); //displays 2
    //从系统枚举中获取文本人信息如下:
    DayOfWeek day=DayOfWeek.Friday;
    //displays "Day is Friday"
    //格式化字符串“ G ”把枚举显示为一个字符串。
    Console.WriteLine(String.Format("Day is {0:G}",day));
  • 相关阅读:
    RTB交接
    awk命令详解
    Linux下的压缩解压缩命令详解
    inux下文件权限设置中的数字表示权限,比如777,677等,这个根据什么得来的
    jmeter接口测试教程
    kafka常用的操作命令
    hadoop常用的操作命令
    linux常用命令
    hive的常用命令
    用shell脚本写一个for循环
  • 原文地址:https://www.cnblogs.com/MobileBo/p/1854392.html
Copyright © 2011-2022 走看看