Полное руководство. С# 4.0 - Шилдт Герберт
Шрифт:
Интервал:
Закладка:
Для обрезки строк используется одна из приведенных ниже форм метода Trim().public string Trim()public string Trim(params char[] trimChars)
В первой форме метода Trim() из вызывающей строки удаляются начальные иконечные пробелы. А во второй форме этого метода удаляются начальные и конечныевхождения в вызывающей строке символов из массива trimChars. В обеих формахвозвращается получающаяся в итоге строка.
Строку можно заполнить символами слева или справа. Для заполнения строки слева служат такие формы метода PadLeft().public string PadLeft(int totalWidth)public string PadLeft(int totalWidth, char paddingChar)
В первой форме метода PadLeft() вводятся пробелы с девой стороны вызывающейстроки, чтобы ее общая длина стала равной значению параметра totalWidth. А вовторой форме данного метода символы, обозначаемые параметром paddingChar, вводятся с левой стороны вызывающей строки, чтобы ее общая длина стала равной значению параметра totalWidth. В обеих формах возвращается получающаяся в итогестрока. Если значение параметра totalWidth меньше длины вызывающей строки, товозвращается копия неизмененной вызывающей строки.
Для заполнения строки справа служат следующие формы метода PadRight().public string PadRight(int totalWidth)public string PadRight(int totalWidth, char paddingChar)
В первой форме метода PadLeft() вводятся пробелы с правой стороны вызывающей строки, чтобы ее общая длина стала равной значению параметра totalWidth.А во второй форме данного метода символы, обозначаемые параметром paddingChar,вводятся с правой стороны вызывающей строки, чтобы ее общая длина стала равнойзначению параметра totalWidth. B обеих формах возвращается получающаяся в итоге строка. Если значение параметра totalWidth меньше длины вызывающей строки,то возвращается копия неизмененной вызывающей строки.
В приведенном ниже примере программы демонстрируются обрезка и заполнениестрок.// Пример обрезки и заполнения строк.using System;class TrimPadDemo { static void Main() { string str = "тест"; Console.WriteLine("Исходная строка: " + str); // Заполнить строку пробелами слева. str = str.PadLeft(10); Console.WriteLine (" | " + str + "|"); // Заполнить строку пробелами справа, str = str.PadRight(20); Console.WriteLine("|" + str + "|"); // Обрезать пробелы. str = str.Trim(); Console.WriteLine("|" + str + "|"); // Заполнить строку символами # слева. str = str.PadLeft(10, '#'); Console.WriteLine("|" + str + "|"); // Заполнить строку символами # справа. str = str.PadRight(20, '#'); Console.WriteLine("|" + str + "|"); // Обрезать символы #. str = str.Trim('#'); Console.WriteLine("|" + str + "|"); }}
Эта программа дает следующий результат.Исходная строка: тест| тест|| тест ||тест||######тест||######тест##########||тест|Вставка, удаление и замена строк
Для вставки одной строки в другую служит приведенный ниже метод Insert():public string Insert(int startIndex, string value)
где value обозначает строку, вставляемую в вызывающую строку по индексуstartIndex. Метод возвращает получившуюся в итоге строку.
Для удаления части строки служит метод Remove(). Ниже приведены две его формы.public string Remove(int startIndex)public string Remove(int startIndex, int count)
В первой форме метода Remove() удаление выполняется, начиная с места, указываемого по индексу startIndex, и продолжается до конца строки. А во второй формеданного метода из строки удаляется количество символов, определяемое параметромcount, начиная с места, указываемого по индексу startIndex. В обеих формах возвращается получающаяся в итоге строка.
Для замены части строки служит метод Replace(). Ниже приведены две его формы.public string Replace(char oldChar, char newChar)public string Replace(string oldValue, string newValue)
В первой форме метода 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(). Во всех этих методах применяется один и тот же подход к форматированию. Поэтому освоив один из них, высможете без особого труда применять и другие.Общее представление о форматировании