КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Строки типа StringBuilder
Пользовательские шаблоны форматирования Форматирование строк В предыдущем примере неявно применяется метод Format, который заменяет все вхождения параметров в фигурных скобках значениями соответствующих переменных из списка вывода. После номера параметра можно задать минимальную ширину поля вывода, а также указать спецификатор формата, который определяет форму представления выводимого значения. Спецификатор формата, как явствует из его названия, определяет формат вывода значения. Например, спецификатор С (Currency) означает, что параметр должен форматироваться как валюта с учетом национальных особенностей представления, а спецификатор X (Hexadecimal) задает шестнадцатеричную форму представления выводимого значения. После некоторых спецификаторов можно задать количество позиций, отводимых под дробную часть выводимого значения. Например, при записи a = {0,6:0.##} после двоеточия задается вид выводимого значения посимвольно, причем на месте каждого символа может стоять либо #, либо 0. Если указан знак #, на этом месте будет выведена цифра числа, если она не равна нулю. Если указан 0, будет выведена любая цифра, в том числе и 0. В таблице 8.3 приведены примеры шаблонов и результатов вывода. Таблица 8.3. - Примеры применения пользовательских шаблонов форматирования Число Шаблон Вид 1,243 00.00 01,24 1,243 #.## 1,24 0,1 00.00 00,10 0,1 #.##,1 Пользовательский шаблон может также содержать текст, который в общем случае заключается в апострофы. Возможности, предоставляемые классом string, широки, однако требование неизменности его объектов может оказаться неудобным. В этом случае для работы со строками применяется класс StringBuilder, определенный в пространстве имен System. Text и позволяющий изменять значение своих экземпляров. При создании экземпляра обязательно использовать операцию new и конструктор, например: StringBuilder a = new StringBuilder(); //1 StringBuilder b = new StringBuilder("qwerty"); //2 StringBuilder с = new StringBuilder(100); //3 StringBuilder d = new StringBuilder("qwerty", 100); //4 StringBuilder e = new StringBuilder("qwerty", 1, 3, 100); //5 В конструкторе класса указываются два вида параметров: инициализирующая строка или подстрока и объем памяти, отводимой под экземпляр. Один или оба параметра могут отсутствовать, в этом случае используются их значения по умолчанию. Если применяется конструктор без параметров (оператор 1), создается пустая строка размера, заданного по умолчанию (16 байт). Другие виды конструкторов задают объем памяти, выделяемой строке, и/или ее начальное значение. Например, в операторе 5 объект инициализируется подстрокой длиной 3 символа, Начиная с первого (подстрока "wer"). Основные элементы класса StringBuilder приведены в таблице 8.4. Таблица 8.4 - Основные элементы класса System.Text.StringBuilder
Пример обработки строк типа StringBuilder
using System; using System.Text; namespace ConsoleApplicationl { class Classl { static void Main() { Console.Write("Введите зарплату: "); double salary = double.Parse(Console.ReadLine()); StringBuilder a = new StringBuilder(); a.Append("зарплата "); a.AppendFormat("{0, 6:C} - в год {1, 6:C}", salary, salary * 12); Console.WriteLine(a); a.Replace("p.", "тыс.$"); Console.WriteLine("А лучше было бы: " + a); } } }
Емкость буфера не соответствует количеству символов в строке и может увеличиваться в процессе работы программы. Программист может уменьшить размер буфера с помощью свойства Capacity, чтобы не занимать лишнюю память.
Пример программы #region Лаба 5 работа по строкам Сокращение ФИО до Фамилии + Инициалы static void laba5() { Console.WriteLine("Работа со строками"); string fio="Nataly Nekk Serd",i="",o="";//Объявление ФИО int j=0,s; bool il=false,ol=false; Console.WriteLine("Исходная ФИО: "+fio); s= fio.IndexOf(" "); // Получаю длину фамилии while (fio.Length > j) {
if ((fio[j] == ' ')&(il== false)) // Получаем первую букву имени { i=fio[j+1].ToString(); il= true; } else if ((fio[j]==' ')&(ol==false)) // Получаем первую букву отчества { o=fio[j+1].ToString(); ol=true; } j++; } fio = fio.Remove(s)+" "+i+"."+o+".";//обрезаю ФИО до фамилии и присоединяю //инициалы Console.WriteLine("После обработки: "+fio);// Вывожу на экран результат } #endregion static void laba2() {
char[] delimiterChars = {' '};//разделители Console.WriteLine("Поехали делать вторую лабу"); string myString1 = "Nataly Nekk Serd"; //ФИО Console.WriteLine(myString1); string[] myS = myString1.Split(delimiterChars);//Разделение строки с //использованием разделителей на выходе будет массив Console.WriteLine("Фамилия " + myS[0] + " Имя " + myS[1] + " Отчество " + myS[2]); Console.WriteLine("Получилось: "+myS[0]+" "+myS[1].Remove(1)+"."+myS[2].Remove(1)+"."); На выходе ФИО плюс инициалы } #endregion
Дата добавления: 2014-01-07; Просмотров: 409; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |