Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
http://msdn.microsoft.com/ru-ru/library/system.string.aspx
Библиотека классов платформы .NET Framework
String - класс
Обновлен: Ноябрь 2007
Представляет текст как последовательность знаков Юникода.
Пространство имен: System
Сборка: mscorlib (в mscorlib.dll)
Синтаксис
Язык Visual Basic (Объявление)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class String _
Implements IComparable, ICloneable, IConvertible, IComparable(Of String), _
IEnumerable(Of Char), IEnumerable, IEquatable(Of String)
Язык Visual Basic (Использование)
Dim instance As String
Язык C#
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class String : IComparable,
ICloneable, IConvertible, IComparable<string>, IEnumerable<char>,
IEnumerable, IEquatable<string>
Язык Visual C++
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class String sealed : IComparable,
ICloneable, IConvertible, IComparable<String^>, IEnumerable<wchar_t>,
IEnumerable, IEquatable<String^>
Язык J#
/** @attribute SerializableAttribute */
/** @attribute ComVisibleAttribute(true) */
public final class String implements IComparable,
ICloneable, IConvertible, IComparable<String>, IEnumerable<char>,
IEnumerable, IEquatable<String>
Язык JScript
public final class String implements IComparable, ICloneable, IConvertible, IComparable<String>, IEnumerable<char>, IEnumerable, IEquatable<String>
Заметки
Строка является упорядоченной коллекцией символов Юникода, используемой для представления текста. Объект String является упорядоченной коллекцией объектов System..::.Char, представляющей строку. Значением объекта String является содержимое упорядоченной коллекции, и это значение является неизменяемым.
Объект String называется неизменяемым (доступным только для чтения), поскольку после его создания его значение не может быть изменено. Методы, используемые для изменения объекта String, на самом деле возвращают новый объект String, содержащий измененные данные. Когда необходимо изменять фактическое содержимое объекта, используйте класс System.Text..::.StringBuilder.
Каждый знак Юникода в строке определен скалярным значением Юникода, называемым также кодовой точкой Юникода или порядковым (числовым) значением знака Юникода. Каждая кодовая точка кодируется с использованием кодировки UTF-16, и числовое значение каждого закодированного знака представляется в виде объекта Char.
Один объект Char обычно представляет одну кодовую точку; то есть числовое значение Char равно кодовой точке. Однако для одной кодовой точки может потребоваться более одного закодированного элемента. Например, дополнительная кодовая точка Юникода (суррогатная пара) кодируется двумя объектами Char.
Индекс это номер позиции объекта Char, а не знака Юникода, в объекте String. Индекс является неотрицательным числом и равен нулю для первой позиции в строке. Индекса в строке может не совпадать с порядковым номером соответствующего знака Юникода, так как знак Юникода может быть закодирован несколькими объектами Char. Для работы с каждым знаком Юникода вместо каждого объекта Char используйте класс System.Globalization..::.StringInfo.
Члены класса String выполняют порядковые или лингвистические операции над объектом String. Порядковые операции выполняются над числовым значением каждого объекта Char. Лингвистические операции выполняются над значениями объектов String с учетом правил учета регистра, сортировки, форматирования и анализа, определяемым языком и региональными параметрами. Лингвистические операции выполняются в контексте языка и региональных параметров определенных явно либо текущих. Дополнительные сведения о текущем языке и региональных параметрах см. в разделе CultureInfo..::.CurrentCulture.
Правила учета регистра определяют, как осуществляется изменение знаков Юникода при смене регистра, например при переходе от нижнего регистра к верхнему.
Правила форматирования определяют способ преобразования значения в строковое представление, а правила анализа определяют способ преобразования строкового представления в значение.
Правила сортировки определяют алфавитный порядок знаков Юникода и принципы сравнения двух строк. Например, метод Compare выполняет лингвистическое сравнение, в то время как метод CompareOrdinal осуществляет порядковое сравнение. Следовательно, если текущей культурой является английская (США), то метод Compare считает, что 'a' меньше, чем 'A', в то время как метод CompareOrdinal считает, что 'a' больше 'A'.
Платформа .NET Framework поддерживает правила сортировки по словам, строкам и порядковым номерам. При сортировке по словам выполняется сравнение строк с учетом языка и региональных параметров, при котором некоторые символы Юникода, отличные от букв и цифр, могут иметь специально присвоенные им весовые коэффициенты. Например, дефису ("-") можно присвоить очень низкий весовой коэффициент, и тогда в отсортированном списке слова "coop" и "co-op" окажутся рядом. Сортировка по строкам аналогична сортировке по словам за исключением того, что особых случаев нет и все буквы и цифры следуют после всех остальных символов Юникода.
Сравнение с учетом языка и региональных параметров это любое сравнение, при котором явно или неявно используется объект CultureInfo, включая инвариантную установку языка и региональных параметров, заданную в свойстве CultureInfo..::.InvariantCulture. Текущая неявная установка языка и региональных параметров определяется свойством Thread..::.CurrentCulture.
При сортировке по порядковому номеру строки сравниваются на основе числовых значений каждого объекта Char в строке. Порядковое сравнение автоматически выполняется независимо от регистра, поскольку один и тот же символ в нижнем и верхнем регистре имеет разные кодовые точки. Однако если для приложения регистр не важен, можно задать порядковое сравнение, при котором игнорируется регистр. Этот способ эквивалентен преобразованию строки в верхний регистр с использованием инвариантного языка и региональных параметров и выполнению порядкового сравнения результатов.
Дополнительные сведения о сортировке по словам, строкам и порядковым номерам см. в разделе System.Globalization..::.CompareOptions.
Сравнение с учетом языка и региональных параметров обычно подходит для сортировки, тогда как порядковое сравнение нет. Порядковое сравнение, как правило, подходит для определения того факта, равны ли две строки (то есть, для определения их идентичности) тогда как сравнение с учетом языка и региональных параметров нет.
В разделе примечаний для методов сравнения и поиска указано, учитывается ли в каждом из методов регистр и учитывается ли в нем язык и региональные параметры. Любая строка, в том числе пустая (""), по определению считается большей, чем пустая ссылка, а две пустые ссылки считаются равными друг другу.
Некоторые символы Юникода имеют несколько эквивалентных двоичных представлений, которые состоят из наборов несамостоятельных и/или составных знаков Юникода. В стандарте Юникода определен процесс, называемый нормализацией, который возвращает одно двоичное представление символа на основе любого из нескольких эквивалентных представлений. Нормализация может выполняться с использованием нескольких алгоритмов, которые называются формами нормализации и следуют различным правилам. В текущей версии платформы .NET Framework поддерживаются формы нормализации Юникод C, D, KC и KD. Пара нормализованных строк обычно оценивается с использованием порядкового сравнения.
Если приложение принимает решение о безопасности в отношении символьного идентификатора, такого как имя файла или именованного канала, либо постоянных данных, таких как текстовые данные в XML-файле, в операции должно использоваться порядковое, сравнение, а не сравнение с учетом языка и региональных параметров. Дело в том, что результаты сравнения с учетом языка и региональных параметров могут различаться в зависимости от действующего языка и региональных параметров, тогда как порядковое сравнение зависит исключительно от сравниваемых знаков.
Класс String предоставляет члены для сравнения объектов String, возврата индекса знака или строки в объекте String, копирования значения объекта String разделения или объединения строк, изменения значения строки, форматирования чисел, значений даты и времени, а также значений из перечисления в виде строки, а также нормализации строки.
На платформе .NET Framework объект String может содержать внедренные значения null, которые считаются частью строки при определении ее длины. Однако в некоторых языках, таких как C и C++, символ null служит индикатором конца строки, не считается ее частью и не учитывается при определении ее размера. Это означает, что указанные ниже типичные предположения о строках, делаемые разработчиками программ и библиотек, написанных на языках C и C++, не обязательно верны в отношении объектов String.
Следует убедиться, что неуправляемый код на языке C или C++, создающий объекты String, а также код, передающий объекты String посредством вызова неуправляемого кода, не основывает свою работу на предположении, что встроенные значения null служат индикаторами конца строки.
Класс String реализует интерфейсы IComparable, ICloneable, IConvertible, IEnumerable и IComparable<(Of <(T>)>). Для преобразования следует использовать класс Convert вместо явной реализации члена интерфейса IConvertible данного типа.