Шрифт:
В первой форме метода Replace все вхождения символа oldChar в вызывающей строке заменяются символом newChar. А во второй форме данного метода все вхож дения строки oldValue в вызывающей строке заменяются строкой newValue. В обеих формах возвращается получающаяся в итоге строка.
В приведенном ниже примере демонстрируется применение методов Insert, Remove и Replace. // Пример вставки, замены и удаления строк. using System; class InsRepRevDemo { static void Main { string str = "Это тест"; Console.WriteLine("Исходная строка: " + str); // Вставить строку. str = str.Insert(4, "простой "); Console.WriteLine(str); // Заменить строку. str = str.Replace("простой", "непростой "); Console.WriteLine(str); // Заменить символы в строке str = str.Replace('т', 'X'); Console.WriteLine(str); // Удалить строку. str = str.Remove(4, 5); Console.WriteLine(str); } }
Ниже приведен результат выполнения этой программы. Исходная строка: Это тест Это простой тест Это непростой тест ЭХо непросХой ХесХ ЭХо сХой ХесХ Смена регистра
В классе String предоставляются два удобных метода, позволяющих сменить ре гистр букв в строке, — ToUpper и ToLower. Ниже приведены их простейшие формы. public string ToLower public string ToUpper
Метод ToLower делает строчными все буквы в вызывающей строке, а метод ToUpper делает их прописными. В обоих случаях возвращается получающаяся в итоге строка. Имеются также следующие формы этих методов, в которых можно ука зывать информацию о культурной среде и способы преобразования символов. public string ToLower(CultureInfo culture) public string ToUpper(CultureInfo culture)
С помощью этих форм можно избежать неоднозначности в исходном коде по от ношению к правилам смены регистра. Именно для таких целей эти формы и рекомен дуется применять.
Кроме того, имеются следующие методы ToUpperInvariant и ToLowerInvariant. public string ToUpperlnvariant public string ToLowerlnvariant
Эти методы аналогичны методам ToUpper и ToLower, за исключением того, что они изменяют регистр букв в вызывающей строке безотносительно к настройкам культурной среды. Применение метода Substring
Для получения части строки служит метод Substring. Ниже приведены две его формы. public string Substring(int startIndex) public string Substring(int startIndex, int length)
В первой форме метода Substring подстрока извлекается, начиная с места, обозначаемого параметром startIndex, и до конца вызывающей строки. А во вто рой форме данного метода извлекается подстрока, состоящая из количества симво лов, определяемых параметром length, начиная с места, обозначаемого параметром startIndex. В обеих формах возвращается получающаяся в итоге подстрока.
В приведенном ниже примере программы демонстрируется применение метода Substring. // Использовать метод Substring. using System; class SubstringDemo { static void Main { string str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; Console.WriteLine("Строка str: " + str); Console.Write("Подстрока str.Substring(15): "); string substr = str.Substring(15); Console.WriteLine(substr); Console.Write("Подстрока str.Substring(0, 15): "); substr = str.Substring(0, 15); Console.WriteLine(substr); } }
Эта программа дает следующий результат. Строка str: ABCDEFGHIJKLMNOPQRSTUVWXYZ Подстрока str.Substring(15): PQRSTUVWXYZ Подстрока str.Substring(0, 15): ABCDEFGHIJKLMNO Методы расширения класса String
Как упоминалось ранее, в классе String реализуется обобщенный интерфейс IEnumerable<T>. Это означает, что, начиная с версии C# 3.0, для объекта класса String можно вызывать методы расширения, определенные в классах Enumerable и Queryable, которые находятся в пространстве имен System.Linq. Эти методы рас ширения служат главным образом для поддержки LINQ, хотя некоторые из них могут использоваться в иных целях, в том числе и в определенных видах обработки строк. Подробнее о методах расширения см. в главе 19. Форматирование
Когда данные встроенных в C# типов, например int или double, требуется ото бразить в удобочитаемой форме, приходится формировать их строковое представле ние. Несмотря на то что в C# для такого представления данных автоматически предо ставляется формат, используемый по умолчанию, имеется также возможность указать выбранный формат вручную. Так, в части I этой книги было показано, что числовые данные можно выводить в формате выбранной денежной единицы. Для форматиро вания данных числовых типов в C# предусмотрен целый ряд методов, включая методы Console.WriteLine, String.Format и ToString. Во всех этих методах при меняется один и тот же подход к форматированию. Поэтому освоив один из них, вы сможете без особого труда применять и другие. Общее представление о форматировании
Форматирование осуществляется с помощью двух компонентов: спецификато ров формата и поставщиков формата. Конкретная форма строкового представления отдельного значения зависит от спецификатора формата. Следовательно, специфика тор формата определяет, в какой именно удобочитаемой форме будут представлены данные. Например, для вывода числового значения в экспоненциальном представле нии (т.е. в виде мантиссы и порядка числа) используется спецификатор формата Е.
Как правило, конкретный формат значения зависит от культурных и языковых особенностей локализации программного обеспечения. Например, в Соединенных Штатах Америки денежные суммы указываются в долларах, а в странах ЕС — в евро. Для учета культурных и языковых отличий в C# предусмотрены поставщики фор мата. В частности, поставщик формата определяет порядок интерпретации специ фикатора формата. Поставщик формата создается путем реализации интерфейса IFormatProvider, в котором определяется метод GetFormat. Для всех встроенных числовых типов и многих других типов данных в среде .NET Framework предопределе ны соответствующие поставщики формата. Вообще говоря, данные можно отформа тировать, не указывая конкретный поставщик формата, поэтому поставщики формата не рассматриваются далее в этой книге.