Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet264/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   260   261   262   263   264   265   266   267   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C


Глава.14 .Символы,.строки.и.обработка.текста
в США, все элементы интерфейса могут представляться на испанском языке, а ва-
люта и формат дата — в соответствии с принятыми в США стандартами. Для этого 
свойству 
CurrentUICulture
потока задается объект 
CultureInfo
, инициализирован-
ный с языком 
es
(испанский), а свойству 
CurrentCulture
— объект 
CultureInfo

инициализированный парой 
en-US
.
Внутренняя реализация объекта 
CultureInfo
ссылается на объект 
System.
Globalization.CompareInfo
, инкапсулирующий принятые в данных региональных 
стандартах таблицы сортировки в соответствии с правилами Юникода. Исполь-
зование региональных стандартов при сортировке строк демонстрирует пример:
using System;
using System.Globalization;
public static class Program {
public static void Main() {
String s1 = "Strasse";
String s2 = "Stra
ß
e";
Boolean eq;
// CompareOrdinal возвращает ненулевое значение
eq = String.Compare(s1, s2, StringComparison.Ordinal) == 0;
Console.WriteLine("Ordinal comparison: '{0}' {2} '{1}'", s1, s2,
eq ? "==" : "!=");
// Сортировка строк для немецкого языка (de) в Германии (DE)
CultureInfo ci = new CultureInfo("de-DE");
// Compare возвращает нуль
eq = String.Compare(s1, s2, true, ci) == 0;
Console.WriteLine("Cultural comparison: '{0}' {2} '{1}'", s1, s2,
eq ? "==" : "!=");
}
}
В результате компоновки и выполнения кода получим следующее:
Ordinal comparison: 'Strasse' != 'Stra
ß
e'
Cultural comparison: 'Strasse' == 'Stra
ß
e'
ПриМеЧание
Если.метод.Compare.не.выполняет.простое.сравнение,.то.он.производит.расширение.
символов.(character.expansions),.то.есть.разбивает.сложные.символы.на.несколько.
символов,.игнорируя.региональные.стандарты .В.предыдущем.случае.немецкий.
символ.
ß
.всегда.расширяется.до.ss .Аналогично.лигатурный.символ.
Æ
.всегда.рас-
ширяется.до.AE .Поэтому.в.приведенном.примере.вызов.Compare.будет.всегда.
возвращать.0.независимо.от.выбранных.региональных.стандартов 
В некоторых редких случаях требуется более тонкий контроль при сравне-
нии строк для проверки на равенство и для сортировки. Например, это может 


367
Тип.System String
потребоваться при сравнении строк с японскими иероглифами. Для этого ис-
пользуется свойство 
CompareInfo
объекта 
CultureInfo
. Как отмечалось ранее, 
объект 
CompareInfo
инкапсулирует таблицы сравнения символов для различных 
региональных стандартов, причем для каждого регионального стандарта существует 
только один объект 
CompareInfo
.
При вызове метода 
Compare
класса 
String
используются указанные вызываю-
щим потоком региональные стандарты. Если региональные стандарты не указаны, 
используются значения свойства 
CurrentCulture
вызывающего потока. Код, реали-
зующий метод 
Compare
, получает ссылку на объект 
CompareInfo
соответствующего 
регионального стандарта и вызывает метод 
Compare
объекта 
CompareInfo
, пере-
давая соответствующие параметры (например, признак игнорирования регистра 
символов). Естественно, если требуется дополнительный контроль, вы должны 
самостоятельно вызывать метод 
Compare
конкретного объекта 
CompareInfo
.
Метод 
Compare
класса 
CompareInfo
принимает в качестве параметра значение 
перечислимого типа 
CompareOptions
. Битовые флаги можно объединять посред-
ством оператора «или» для большего контроля над сравнением строк. За полным 
описанием флагов обращайтесь к документации .NET Framework.
Следующий пример демонстрирует значение региональных стандартов при 
сортировке строк и различные варианты сравнения строк:
using System;
using System.Text;
using System.Windows.Forms;
using System.Globalization;
using System.Threading;
public sealed class Program {
public static void Main() {
String output = String.Empty;
String[] symbol = new String[] { "<", "=", ">" };
Int32 x;
CultureInfo ci;
// Следующий код демонстрирует, насколько отличается результат 
// сравнения строк для различных региональных стандартов
String s1 = "cot

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   260   261   262   263   264   265   266   267   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish