Рейтинговые книги
Читем онлайн C# 4.0: полное руководство - Герберт Шилдт

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 220 221 222 223 224 225 226 227 228 ... 294

Для удаления части строки служит метод Remove(). Ниже приведены две его формы.

public string Remove(int startlndex)

public string Remove(int startlndex, int count)

В первой форме метода Remove() удаление выполняется, начиная с места, указываемого по индексу startlndex, и продолжается до конца строки. А во второй форме данного метода из строки удаляется количество символов, определяемое параметром count, начиная с места, указываемого по индексу startlndex. В обеих формах возвращается получающаяся в итоге строка.

Для замены части строки служит метод 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 (Culturelnfo culture)

public string ToUpper(Culturelnfo culture)

С помощью этих форм можно избежать неоднозначности в исходном коде по отношению к правилам смены регистра. Именно для таких целей эти формы и рекомендуется применять.

Кроме того, имеются следующие методы ToUpperInvariant() и ToLowerlnvariant().

public string ToUpperlnvariant()

public string ToLowerlnvariant()

Эти методы аналогичны методам ToUpper() и ToLower(), за исключением того, что они изменяют регистр букв в вызывающей строке безотносительно к настройкам культурной среды.

Применение метода Substring()

Для получения части строки служит метод Substring(). Ниже приведены две его формы.

public string Substring(int startlndex)

public string Substring(int startlndex, int length)

В первой форме метода Substring() подстрока извлекается, начиная с места, обозначаемого параметром startlndex, и до конца вызывающей строки. А во второй форме данного метода извлекается подстрока, состоящая из количества символов, определяемых параметром length, начиная с места, обозначаемого параметром startlndex. В обеих формах возвращается получающаяся в итоге подстрока.

В приведенном ниже примере программы демонстрируется применение метода 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 предопределены соответствующие поставщики формата. Вообще говоря, данные можно отформатировать, не указывая конкретный поставщик формата, поэтому поставщики формата не рассматриваются далее в этой книге.

Для того чтобы отформатировать данные, достаточно включить спецификатор формата в метод, поддерживающий форматирование. О применении спецификаторов формата речь уже шла в главе 3, тем не менее к этому вопросу стоит вернуться вновь. Применение спецификаторов формата рассматривается далее на примере метода Console.WriteLine(), хотя аналогичный подход применим и к другим методам, поддерживающим форматирование.

Для форматирования выводимых данных служит следующая форма метода WriteLine().

WriteLine("форматирующая строка", arg0, arg1, ... , argN) ;

В этой форме аргументы метода WriteLine() разделяются запятой, а не знаком +. А форматирующая строка состоит из двух следующих элементов: обычных печатаемых символов, отображаемых в исходном виде, а также команд форматирования.

1 ... 220 221 222 223 224 225 226 227 228 ... 294
На этой странице вы можете бесплатно читать книгу C# 4.0: полное руководство - Герберт Шилдт бесплатно.
Похожие на C# 4.0: полное руководство - Герберт Шилдт книги

Оставить комментарий