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在不同区域信息下比较结果都一样;但是这个区域是哪里我不懂= =求高人指教~

      

  • 相关阅读:
    luogu1060开心的金明
    luogu1048采药
    uva1025城市里的间谍
    scoi刷题记录(2019/04/07)
    差分及树上差分的正确食用姿势(2019/2/21学习笔记)
    图论技巧(2019/1/28之一)
    考试反思(2019/1/26学习笔记)
    考试反思(2019/1/22)
    「一本通 5.2 例 5」皇宫看守
    「一本通 5.2 例 3」数字转换
  • 原文地址:https://www.cnblogs.com/socialdk/p/2588000.html
Copyright © 2011-2022 走看看