Главная » Просмотр файлов » Г. Шилдт - Полный справочник по C#

Г. Шилдт - Полный справочник по C# (1160789), страница 34

Файл №1160789 Г. Шилдт - Полный справочник по C# (Г. Шилдт - Полный справочник по C#) 34 страницаГ. Шилдт - Полный справочник по C# (1160789) страница 342019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 34)

Массивы и строки171СтрокиС точки зрения ежедневного программирования одним из самых важных типовданных С# является тип s t r i n g . Он предназначен для определения и поддержкисимвольных строк. Во многих других языках программирования строка представляетсобой массив символов. В С# дело обстоит иначе: здесь строки являются объектами.Таким образом, s t r i n g — это ссылочный тип. Несмотря на то что s t r i n g — встроенный тип данных, для его рассмотрения необходимо иметь представление о классахи объектах.На самом деле мы негласно используем класс s t r i n g , начиная с главы 2, но выпопросту об этом не знали.

При создании строкового литерала в действительностисоздается объект класса s t r i n g . Например, в инструкцииI Console.WriteLine("В С# строки являются объектами.");строка "В С# строки являются объектами." средствами языка С# автоматически превращена в объект класса s t r i n g . Таким образом, в предыдущих программах мы подспудно использовали класс s t r i n g . В этом разделе мы научимся работать с ними вявном виде.Создание строкСамый простой способ создать объект типа s t r i n g — использовать строковый литерал.

Например, после выполнения приведенной ниже инструкции s t r будет объявлена ссылочной переменной типа s t r i n g , которой присваивается ссылка на строковый литерал.1 s t r i n g s t r = "С#-строки - это мощная с и л а . " ;В данном случае переменная s t r инициализируется последовательностью символов "С#-строки - это мощная сила.".Можно также создать string-объект из массива типа char. Вот пример:fc h a r t ] charray = { f t f ,e \ 'sf,4'};s t r i n g s t r = new s t r i n g ( c h a r r a y ) ;IПосле создания string-объект можно использовать везде, где разрешается использование строки символов, заключенной в кавычки. Например, string-объектможно использовать в качестве аргумента функции WriteLine (), как показано в следующем примере.// Знакомство со строками.using System;class StringDemo {public static void Main() {chart] charray = {'A1, f \ ' s 1 , 't 1 , 'r 1 , f i ' , f n', •g 1 , '.' };string strl = new string(charray);string str2 = "Еще один string-объект.";Console.WriteLine(strl) ;Console.WriteLine(str2);172Часть I.

Язык С #Результаты выполнения этой программы таковы:A string.Еще один string-объект.Работа со строкамиКласс s t r i n g содержит ряд методов, которые предназначены для обработки строк(некоторые из них показаны в табл. 7.1). Тип s t r i n g также включает свойствоLength, которое содержит длину строки.Чтобы получить значение отдельного символа строки, достаточно использоватьиндекс. Например:string str = "test";Console.WriteLine(string[0]);IПри выполнении этого фрагмента программы на экран будет выведен символ t(первый символ слова "test"). Как и у массивов, индексация строк начинается с нуля.Однако здесь важно отметить, что с помощью индекса нельзя присвоить символувнутри строки новое значение.

Индекс можно использовать только для получениясимвола.Таблица 7.1. Наиболее часто используемые методы обработки строкs t a t i c string Copy (string s t r )Возвращает копию строки s t rintcompareTo ( s t r i n g str)Возвращает отрицательное значение, если вызывающая строка меньше строки s t r , положительное значение, если вызывающая строкабольше строки s t r , и нуль, если сравниваемые строки равныinti n d e x O f ( s t r i n g str)Выполняет в вызывающей строке поиск подстроки, заданной параметром s t r .

Возвращает индекс первого вхождения искомой подстроки или - 1 , если она не будет обнаруженаintLastindexOf ( s t r i n g s t r )Выполняет в вызывающей строке поиск подстроки, заданной параметром s t r . Возвращает индекс последнего вхождения искомойподстроки или - 1 , если она не будет обнаруженаs t r i n g ToLower ( )Возвращает строчную версию вызывающей строкиs t r i n g ToupperOВозвращает прописную версию вызывающей строкиЧтобы узнать, равны ли две строки, необходимо использовать оператор " = = " .Обычно, когда оператор "==" применяется к ссылочным объектам, он определяет, относятся ли обе ссылки к одному и тому же объекту. Но применительно к объектамтипа s t r i n g дело обстоит иначе. В этом случае проверяется равенство содержимогодвух строк.

То же справедливо и в отношении оператора " !=". Что касается остальныхоператоров отношения (например, " > " или ">="), то они сравнивают ссылки так же,как и объекты других типов.Рассмотрим программу, которая демонстрирует выполнение ряда операций над^троками.// Демонстрация выполнения некоторых операций над строками.using System;class Strops {public s t a t i c void Main() {string s t r l ="B .NET-программировании без С# не обойтись.";string str2 = string.Copy(strl);Глава 7. Массивы и строки773string str3 = "С#-строки —string strUpf strLow;int result, idx;могучая сила.";Console.WriteLine("strl: " + strl);Console.WriteLine("Длина строки strl: " +strl.Length);// Создаем прописную и строчную версии строки strl.strLow - strl.ToLower();strUp = strl.ToUpper();Console.WriteLine("Строчная версия строки strl:\nstrLow);Console.WriteLine("Прописная версия строки strl:\nstrUp);" +" +Console.WriteLine();// Отображаем strl в символьном режиме.Console.WriteLine("Отображаем strl посимвольно.");for(int i=0; i < strl.Length; i++)Console.Write(strl[i]);Console.WriteLine("\n");// Сравниваем строки,if (strl ===== str2)Console.WriteLine("strl == str2");elseConsole.WriteLine("strl != str2");if(strl « str3)Console.WriteLine("strl == str3") ;elseConsole.WriteLine("strl != str3");result = strl.CompareTo(str3);if(result == 0)Console.WriteLine("strl и str3 равны.");else if(result < 0)Console.WriteLine("strl меньше, чем str3");elseConsole.WriteLine("strl больше, чем str3");Console.WriteLine();// Присваиваем str2 новую строку.str2 = "Один Два Три Один";// Поиск строк.idx = str2.IndexOf("Один");Console.WriteLine("Индекс первого вхождения подстроки Один: " + idx);idx = str2.LastIndexOf("Один");Console.WriteLine("Индекс последнего вхождения подстроки Один: " + idx);174Часть I.

Язык С#При выполнении этой программы получаем следующие результаты:strl: В .NET-программировании без С# не обойтись.Длина строки strl: 43Строчная версия строки strl:в .net-программировании без с# не обойтись.Прописная версия строки strl:В .NET-ПРОГРАММИРОВАНИИ БЕЗ С# НЕ ОБОЙТИСЬ.Отображаем strl посимвольно.В .NET-программировании без С# не обойтись.strl == str2strl != str3strl больше, чем str3Индекс первого вхождения подстроки Один: ОИндекс последнего вхождения подстроки Один: 13С помощьюНапример, приstring strlstring str2string str3string str4оператора " + " можно конкатенировать (объединить) несколько строк.выполнении этого фрагмента кода= "Один";= "Два";^= "Три";= strl + str2 + str3;переменная s t r 4 инициализируется строкой "ОдинДваТри".И еще. Ключевое слово s t r i n g представляет собой псевдоним для классаSystem, s t r i n g , определенного библиотекой классов среды .NET Framework.

Такимобразом, поля и методы, определяемые типом s t r i n g , по сути являются полями иметодами класса System. S t r i n g (здесь были представлены только некоторые из них).Подробно класс System. S t r i n g рассматривается в части II.Массивы строкПодобно другим типам данных, строки могут быть собраны в массивы. Рассмотрим пример.// Демонстрацияиспользования массивовстрок.u s i n g System;class StringArrays {public s t a t i c void Main() {string[] s t r = { "Это", "очень", "простой", "тест."Console.WriteLine("Исходный массив: " ) ;for(int i=0; i < str.Length; i++)Console.Write(str[i] + " " ) ; "Console.WriteLine("\n");};t// Изменяем строку.str[l] = "тоже";str[3) = "тест, не правда ли?";Console.WriteLine("Модифицированный массив: " ) ;for(int i=0; i < str.Length;Console.Write(str[i] + " " ) ;Глава 7.

Массивы и строки175После выполнения этой программы получаем такие результаты:Исходный массив:Это очень простой тест.Модифицированный массив:Это тоже простой тест, не правда ли?А вот пример поинтереснее. Следующая программа отображает целочисленноезначение с помощью слов. Например, значение 19 будет отображено как словосочетание "один девять".// Отображение цифр целого числа с помощью слов.using System;class ConvertDigitsToWords {public static void Main() {int num;int nextdigit;int numdigits;int[] n = new int[20];string[] digits = { "нуль", "один", "два","три", "четыре", "пять","шесть", "семь", "восемь","девять" };num = 1908;Console.WriteLine("Число: " + num);Console.Write("Число в словах: " ) ;nextdigit = 0 ;numdigits - 0;/* Получаем отдельные цифры и сохраняем их в массиве п.Эти цифры хранятся в обратном порядке. */do {nextdigit - num % 10;n[numdigits] = nextdigit;numdigits++;num = num / 10;} while(num > 0 ) ;numdigits—;// Отображаем слова.for( ; numdigits >= 0; numdigits—)Console.Write(digits[n[numdigits]] + " " ) ;Console.WriteLine() ;Вот результаты выполнения этой программы:Число: 1908Число в словах: один девять нуль восемь176Часть I.

Язык С#В этой программе string-массив d i g i t s хранит в порядке возрастания словесныеэквиваленты цифр от нуля до девяти. Чтобы заданное целочисленное значение преобразовать в слова, сначала выделяется каждая цифра этого значения, начиная с крайней правой, и полученные цифры запоминаются в обратном порядке в int-массиве сименем п. Затем этот массив опрашивается от конца к началу, и каждое целое значение массива п используется в качестве индекса для доступа к элементам массиваd i g i t s , чтобы отобразить на экране соответствующую строку.Постоянство строкСледующее утверждение, вероятно, вас удивит: содержимое string-объектов неизменно. Другими словами, последовательность символов, составляющих строку, изменить нельзя. Хотя это кажется серьезным недостатком, на самом деле это не так.Это ограничение позволяет С# эффективно использовать строки. Если вам понадобится строка, которая должна представлять собой "вариацию на тему" уже существующей строки, создайте новую строку, которая содержит желаемые изменения.

Поскольку неиспользуемые строковые объекты автоматически утилизируются системойсбора мусора, даже не нужно беспокоиться о "брошенных" строках.При этом необходимо понимать, что ссылочные переменные типа s t r i n g могутменять объекты, на которые они ссылаются. А содержимое созданного s t r i n g объекта изменить уже невозможно.Чтобы до конца понять, почему неизменяемые строки не являются препятствиемдля программиста, воспользуемся еще одним методом класса s t r i n g : Substring ().Этот метод возвращает новую строку, которая содержит заданную часть вызывающейстроки.

Характеристики

Тип файла
PDF-файл
Размер
24,15 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее