KnigaRead.com/
KnigaRead.com » Разная литература » Прочее » Герберт Шилдт - C# 4.0 полное руководство - 2011

Герберт Шилдт - C# 4.0 полное руководство - 2011

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн "Герберт Шилдт - C# 4.0 полное руководство - 2011". Жанр: Прочее издательство неизвестно, год неизвестен.
Перейти на страницу:

Console.WriteLine ("|" + str + "I");

// Заполнить строку символами # справа, str = str.PadRight(20, '#');

Console.WriteLine("|" + str + "I");

// Обрезать символы #. str = str.Trim('#');

Console.WriteLine("|" + str + "|");

}

}

Эта программа дает следующий результат.

Исходная строка: тест I    тест|

|    тест    |

|тест|

I ######тест|

|######тест##########|

I тест|

Вставка, удаление и замена строк

Для вставки одной строки в другую служит приведенный ниже метод Insert (): public string Insert(int startlndex, string value)

где value обозначает строку, вставляемую в вызывающую строку по индексу startlndex. Метод возвращает получившуюся в итоге строку.

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

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

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

public string ToUpperlnvariant () public string ToLowerlnvariant()

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

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

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

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# предусмотрены поставщики формата. В частности, поставщик формата определяет порядок интерпретации спецификатора формата. Поставщик формата создается путем реализации интерфейса I Format Provi der, в котором определяется метод Get Format (). Для всех встроенных числовых типов и многих других типов данных в среде .NET Framework предопределены соответствующие поставщики формата. Вообще говоря, данные можно отформатировать, не указывая конкретный поставщик формата, поэтому поставщики формата не рассматриваются далее в этой книге.

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

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*