Упражнения на C # Sharp: Сравните три варианта буквы «Я»
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 программирования
disqus2code