zoukankan      html  css  js  c++  java
  • 忽略特殊符号比较字符串

      若在C#中想比较两个字符串,但是两个字符串中又夹杂着许多的符号,如果单纯的想比较字母或数字,则不能使用最简单的Compare来比较他们。一般的常规方法是比较不出的。只能使用CultureInfo中的CompareInfo来比较。然后有一个CompareOptions.IgnoreSymbols选项可以供选择。同时在引用中也要加入System.Globalization才能使用这个比较。若为0则表示相等。

    View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Globalization;
    
    namespace ConsoleApplication1 {
        class Program {
            static void Main(string[] args) {
                string a="dfdsa+-38':c";
                string b="df(d&s*a3<8c";
                //正常比较
                Console.WriteLine("Compare a and b:{0}",string.Compare(a,b));
                //使用CultureInfo中的CompareInfo来比较
                Console.WriteLine("(CurrentCulture) Compare a and b:{0}",CultureInfo.CurrentCulture.CompareInfo.Compare(a,b,CompareOptions.IgnoreSymbols));
                Console.WriteLine("(InvariantCulture) Compare a and b:{0}", CultureInfo.InvariantCulture.CompareInfo.Compare(a, b, CompareOptions.IgnoreSymbols));
            }
        }
    }

      上面的输出为第一个为1,第二第三个为0。

      但是CultureInfo.CurrentCulture和CultureInfo.InvariantCulture我没有搞清楚。

      网上一般说CurrentCulture在当前区域信息下进行比较可以给出一样的结果;InvariantCulture在不同区域信息下比较结果都一样;但是这个区域是哪里我不懂= =求高人指教~

      

  • 相关阅读:
    如何优化数据库中数据的查询
    2句sql语句的比较
    未来五年程序员应当具备的十项技能
    中小IT企业如何留住80后技术人才
    ORACLE的sign函数和DECODE函数
    Windows Server 2008系统 安装Oracle 10g 错误
    ORACLE 错误 ora01830 解决方法
    oracle instr函数
    Oracle 9i安装时没有找到OCS4J.properties 解决办法
    C# 中的委托和事件
  • 原文地址:https://www.cnblogs.com/socialdk/p/2588000.html
Copyright © 2011-2022 走看看