Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Tips C# 9

Exista multe moduri de a compara sirurile de caractere in C#. O situatie deosebita apare in cazul compararii string-urilor a caror valoare se schimba in functie de limba in care proiectul este construit. In acest caz, “localized strings”, sirurile de caractere pot parea la fel, dar valoarea bitilor poate fi diferita.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
using System.Threading;

namespace StringComparer
{
    class Program
    {
        static void Main(string[] args)
        {
            string s1 = "file";
            string s2 = "FILE";

            bool invariantCultureComparer = string.Compare(s1, s2, true, CultureInfo.InvariantCulture) == 0;
            bool turkishCultureComparer = string.Compare(s1, s2, true, CultureInfo.CreateSpecificCulture("tr-TR")) == 0;

            Console.WriteLine("{0} si {1} sunt egale?", s1, s2);
            Console.WriteLine("---------");
            //da
            Console.WriteLine("Invariant culture:" + (invariantCultureComparer ? "da" : "nu"));
            //nu
            Console.WriteLine("Turkish culture:" + (turkishCultureComparer? "da": "nu"));
           
            Console.ReadLine();
        }
    }
}

Chiar daca vizual reprezentarea sirurilor de caractere este aceeasi, bitii sunt diferiti.

            //11001100110100101101100011001010
            Console.WriteLine(GetBits(s1));
            //10001100100100101001100010001010
            Console.WriteLine(GetBits(s2));

        public static string GetBits(string input)
        {
            StringBuilder sb = new StringBuilder();
            foreach (byte b in Encoding.Unicode.GetBytes(input))
            {
                sb.Append(Convert.ToString(b, 2));
            }
            return sb.ToString();
        }

Se poate observa cat de important este sa tinem cont de “culture” atunci cand comparam sirurile de caractere.

Category: Uncategorized

Your email address will not be published. Required fields are marked *

*