кодесурса
«C #

Упражнения на C # Sharp: Сравните три варианта буквы «Я»

script1adsense2code
script1adsense3code

C # Sharp String: упражнение 29 с решением

Напишите программу на C # Sharp, чтобы сравнить три варианта буквы «Я». На результаты влияет выбор культуры, игнорируется ли регистр, и выполняется ли порядковое сравнение.

Пример решения : -

C # острый код:

// This example demonstrates the 
// System.String.Compare(String, String, StringComparison) method.
using System;
using System.Threading;
class Example29 
{
    public static void Main() 
    {
    string intro ="Compare three versions of the letter I using different " + 
                   "values of StringComparison.";
// Define an array of strings where each element contains a version of the 
// letter I. (An array of strings is used so you can easily modify this 
// code example to test additional or different combinations of strings.)  
    string[] threeIs = new string[3];
// LATIN SMALL LETTER I (U+0069)
    threeIs[0] ="\u0069";
// LATIN SMALL LETTER DOTLESS I (U+0131)
    threeIs[1] ="\u0131";
// LATIN CAPITAL LETTER I (U+0049)
    threeIs[2] ="\u0049";
    string[] unicodeNames = 
             {
             "LATIN SMALL LETTER I (U+0069)", 
             "LATIN SMALL LETTER DOTLESS I (U+0131)", 
             "LATIN CAPITAL LETTER I (U+0049)"
             };
    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };
//
    Console.Clear();
    Console.WriteLine(intro);
// Display the current culture because the culture-specific comparisons
// can produce different results with different cultures.
    Console.WriteLine("The current culture is {0}.\n", 
                       Thread.CurrentThread.CurrentCulture.Name);
// Determine the relative sort order of three versions of the letter I. 
    foreach (StringComparison sc in scValues)
        {
        Console.WriteLine("StringComparison.{0}:", sc);
// LATIN SMALL LETTER I (U+0069) : LATIN SMALL LETTER DOTLESS I (U+0131)
        Test(0, 1, sc, threeIs, unicodeNames);
// LATIN SMALL LETTER I (U+0069) : LATIN CAPITAL LETTER I (U+0049)
        Test(0, 2, sc, threeIs, unicodeNames);
// LATIN SMALL LETTER DOTLESS I (U+0131) : LATIN CAPITAL LETTER I (U+0049)
        Test(1, 2, sc, threeIs, unicodeNames);
        Console.WriteLine();
        }
    }
    protected static void Test(int x, int y, 
                               StringComparison comparison, 
                               string[] testI, string[] testNames)
    {
    string resultFmt ="{0} is {1} {2}";
    string result ="equal to";
    int cmpValue = 0;
//
    cmpValue = String.Compare(testI[x], testI[y], comparison);
    if      (cmpValue < 0) 
        result ="less than";
    else if (cmpValue > 0)
        result ="greater than";
    Console.WriteLine(resultFmt, testNames[x], result, testNames[y]);
    }
}

Пример вывода:

 Сравните три версии письма я, используя разные значения StringComparison.                            
Нынешняя культура en-US.                                                                                 
                                                                                                              
StringComparison.CurrentCulture:                                                                              
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) меньше ЛАТИНСКОГО МАЛЕНЬКОГО БУКВЫ I (U + 0131)                              
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) меньше, чем ЛАТИНСКОЕ КАПИТАЛЬНОЕ ПИСЬМО I (U + 0049)                                    
МАЛЕНЬКОЕ ПИСЬМО ЛАТИНСКОГО БУКВЫ I (U + 0131) больше, чем БУКВА ЛАТИНСКОГО КАПИТАЛА I (U + 0049)                         
                                                                                                              
StringComparison.CurrentCultureIgnoreCase:                                                                    
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) меньше ЛАТИНСКОГО МАЛЕНЬКОГО БУКВЫ I (U + 0131)                              
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) равно ЛАТИНСКОМУ КАПИТАЛЬНОМУ ПИСЬМУ I (U + 0049)                                     
МАЛЕНЬКОЕ ПИСЬМО ЛАТИНСКОГО БУКВЫ I (U + 0131) больше, чем БУКВА ЛАТИНСКОГО КАПИТАЛА I (U + 0049)                         
                                                                                                              
StringComparison.InvariantCulture:                                                                            
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) меньше ЛАТИНСКОГО МАЛЕНЬКОГО БУКВЫ I (U + 0131)                              
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) меньше, чем ЛАТИНСКОЕ КАПИТАЛЬНОЕ ПИСЬМО I (U + 0049)                                    
МАЛЕНЬКОЕ ПИСЬМО ЛАТИНСКОГО БУКВЫ I (U + 0131) больше, чем БУКВА ЛАТИНСКОГО КАПИТАЛА I (U + 0049)                         
                                                                                                              
StringComparison.InvariantCultureIgnoreCase:                                                                  
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) меньше ЛАТИНСКОГО МАЛЕНЬКОГО БУКВЫ I (U + 0131)                              
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) равно ЛАТИНСКОМУ КАПИТАЛЬНОМУ ПИСЬМУ I (U + 0049)                                     
МАЛЕНЬКОЕ ПИСЬМО ЛАТИНСКОГО БУКВЫ I (U + 0131) больше, чем БУКВА ЛАТИНСКОГО КАПИТАЛА I (U + 0049)                         
                                                                                                              
StringComparison.Ordinal:                                                                                     
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) меньше ЛАТИНСКОГО МАЛЕНЬКОГО БУКВЫ I (U + 0131)                              
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) больше, чем ЛАТИНСКОЕ КАПИТАЛЬНОЕ ПИСЬМО I (U + 0049)                                 
МАЛЕНЬКОЕ ПИСЬМО ЛАТИНСКОГО БУКВЫ I (U + 0131) больше, чем БУКВА ЛАТИНСКОГО КАПИТАЛА I (U + 0049)                         
                                                                                                              
StringComparison.OrdinalIgnoreCase:                                                                           
LATIN SMALL LETTER I (U + 0069) невероятно похож на LATIN SMALL PETTER I (U + 0131)                               
ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО I (U + 0069) равно ЛАТИНСКОМУ КАПИТАЛЬНОМУ ПИСЬМУ I (U + 0049)                                     
МАЛЕНЬКОЕ ПИСЬМО ЛАТИНСКОГО БУКВЫ I (U + 0131) равно ПИСЬМУ ЛАТИНСКОГО КАПИТАЛА I (U + 0049) 

Блок-схема:

«Блок-схема:

Редактор кода C # Sharp:

Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущий: Напишите программу на C # Sharp для сравнения двух строк следующими тремя различными способами, чтобы получить три разных результата.
Далее: Напишите программу на C # Sharp, чтобы продемонстрировать, что CompareOrdinal и Compare используют разные порядки сортировки.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code