Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Модификация строк при копировании
Поскольку объекты класса String нельзя изменять, всякий раз, когда вам захочется модифицировать строку, придется либо копировать ее в объект типа StringBuffer, либо использовать один из описываемых ниже методов класса String, которые создают новую копию строки, внося в нее ваши изменения.
substring Вы можете извлечь подстроку из объекта String, используя метод substring. Этот метод создает новую копию символов из того диапазона индексов оригинальной строки, который вы указали при вызове. Можно указать только индекс первого символа нужной подстроки — тогда будут скопированы все символы, начиная с указанного и до конца строки. Также можно указать и начальный, и конечный индексы — при этом в новую строку будут скопированы все символы, начиная с первого указанного, и до (но не включая его) символа, заданного конечным индексом. " Hello World".substring(6) -> " World" " Hello World".substring(3, 8) -> " lo Wo"
concat Слияние, или конкатенация строк выполняется с помощью метода concat. Этот метод создает новый объект String, копируя в него содержимое исходной строки и добавляя в ее конец строку, указанную в параметре метода. " Hello".concat(" World" ) -> " Hello World"
replace Методу replace в качестве параметров задаются два символа. Все символы, совпадающие с первым, заменяются в новой копии строки на второй символ. " Hello".replace('l', 'w') -> " Hewwo"
toLowerCase и toUpperCase Эта пара методов преобразует все символы исходной строки в нижний и верхний регистр, соответственно. " Hello".toLowerCase() -> " hello" " Hello".toUpperCase() -> " HELLO"
trim И, наконец, метод trim убирает из исходной строки все ведущие и замыкающие пробелы. “Hello World “.trirn() -> " Hello World"
valueOf Если вы имеете дело с каким-либо типом данных и хотите вывести значение этого типа в удобочитаемом виде, сначала придется преобразовать это значение в текстовую строку. Для этого существует метод valueOf. Такой статический метод определен для любого существующего в Java типа данных (все эти методы совмещены, то есть используют одно и то же имя). Благодаря этому не составляет труда преобразовать в строку значение любого типа.
StringBuffer StringBuffer — близнец класса String, предоставляющий многое из того, что обычно требуется при работе со строками. Объекты класса String представляют собой строки фиксированной длины, которые нельзя изменять. Объекты типа StringBuffer представляют собой последовательности символов, которые могут расширяться и модифицироваться. Java активно использует оба класса, но многие программисты предпочитают работать только с объектами типа String, используя оператор +. При этом Java выполняет всю необходимую работу со StringBuffer за сценой.
Конструкторы Объект StringBuffer можно создать без параметров, при этом в нем будет зарезервировано место для размещения 16 символов без возможности изменения длины строки. Вы также можете передать конструктору целое число, для того чтобы явно задать требуемый размер буфера. И, наконец, вы можете передать конструктору строку, при этом она будет скопирована в объект и дополнительно к этому в нем будет зарезервировано место еще для 16 символов. Текущую длину StringBuffer можно определить, вызвав метод length, а для определения всего места, зарезервированного под строку в объекте StringBuffer нужно воспользоваться методом capacity. Ниже приведен пример, поясняющий это:
class StringBufferDemo { public static void main(String args[]) { StringBuffer sb = new StringBuffer(" Hello" ); System.out.println(" buffer = " + sb); System.out.println(" length = " + sb.length()); System.out. println(" capacity = " + sb.capacity()); } }
Вот вывод этой программы, из которого видно, что в объекте String-Buffer для манипуляций со строкой зарезервировано дополнительное место. С: \> java StringBufferDemo buffer = Hello length = 5 capacity = 21
ensureCapacity Если вы после создания объекта StringBuffer захотите зарезервировать в нем место для определенного количества символов, вы можете для установки размера буфера воспользоваться методом ensureCapacity. Это бывает полезно, когда вы заранее знаете, что вам придется добавлять к буферу много небольших строк.
setLength Если вам вдруг понадобится в явном виде установить длину строки в буфере, воспользуйтесь методом setLength. Если вы зададите значение, большее чем длина содержащейся в объекте строки, этот метод заполнит конец новой, расширенной строки символами с кодом нуль. В приводимой чуть дальше программе setCharDemo метод sstLength используется для укорачивания буфера.
charAt и setCharAt Одиночный символ может быть извлечен из объекта StringBuffer с помощью метода charAt. Другой метод setCharAt позволяет записать в заданную позицию строки нужный символ. Использование обоих этих методов проиллюстрировано в примере:
class setCharAtDemo { public static void main(String args[]) { StringBuffer sb = new StringBuffer(" Hello" ); System.out.println(" buffer before = " + sb); System.out.println(" charAt(1) before = " + sb.charAt(1)); sb.setCharAt(1, 'i'); sb.setLength(2); System.out.println(" buffer after = " + sb); System.out.println(" charAt(1) after = " + sb.charAt(1)); } }
Вот вывод, полученный при запуске этой программы. C: \> java setCharAtDemo buffer before = Hello charAt(1) before = e buffer after = Hi charAt(1) after = i
append Метод append класса StringBuffer обычно вызывается неявно при использовании оператора + в выражениях со строками. Для каждого параметра вызывается метод String.valueOf и его результат добавляется к текущему объекту StringBuffer. К тому же при каждом вызове метод append возвращает ссылку на объект StringBuffer, с которым он был вызван. Это позволяет выстраивать в цепочку последовательные вызовы метода, как это показано в очередном примере.
class appendDemo { public static void main(String args[]) { String s; int a = 42; StringBuffer sb = new StringBuffer(40); s = sb.append(" a = " ).append(a).append("! " ).toString(); System.out.println(s); } }
Вот вывод этого примера: С: \> Java appendDemo а = 42!
insert Метод insert идентичен методу append в том смысле, что для каждого возможного типа данных существует своя совмещенная версия этого метода. Правда, в отличие от append, он не добавляет символы, возвращаемые методом String.valueOf, в конец объекта StringBuffer, а вставляет их в определенное место в буфере, задаваемое первым его параметром. В очередном нашем примере строка " there" вставляется между " hello" и " world! ".
class insertDemo { public static void main(String args[]) { StringBuffer sb = new StringBuffer(" hello world! " ); sb.insert(6, " there " ); System.out.println(sb); } } При запуске эта программа выводит следующую строку: С: \> java insertDemo hello there world!
БИЛЕТ №17 Области применения ООП
1.Приложений для работы с различными системами управления базами данных. Например СУБД Microsoft Access использует встроенный объектно-ориентированный язык программирования Visual Basic for Applications, родоначальником которого является структурный язык Basic. 2.Создание развлекательных приложений игрового характера с элементами 3D графики. Примером может служить язык OpenGL который включает 250 функций для рисования сложных трёхмерных сцен из простых примитивов и используется при создании компьютерных игр, САПР, виртуальной реальности, визуализации в научных исследованиях. На платформе Windows конкурирует с Direct 3D. 3.Современные объектно-ориентированные среды программирования используют как встроенные библиотечные модули, так и позволяют подключать модули разработанные для использования в данной среде. Подключаемые объекты можно разработать на основе шаблонных модулей.
Областями применения ООП в программной инженерии являются создание различных приложений как WEB, так и для работы в различных операционных системах (семейств Windows, Linux и др.):
Удачным проектом называется тот, который удовлетворил ожидания заказчика, уложился во временные и финансовые рамки, легко поддается изменению и адаптации. Пользуясь этим критерием, рассматриваются следующие две черты, которые оказались общими для всех известных удачных проектов: - ясное представление об архитектуре создаваемой системы; - хорошо организованный итеративно развивающийся процесс работы над проектом. БИЛЕТ №18 Коллекции Java Об интерфейсах, реализуемых коллекциями. Есть 3 базовых интерфейса: · Set — множество уникальных элементов; · List — упорядоченный массив элементов; · Map — ассоциативный массив вида ключ=> значение, где ключ и значение могут быть объектами любого класса. Ключи в списке должны быть уникальными. Эти интерфейсы реализованы множеством классов. . Примечание . Квадратные скобки в примерах кода представляют собой часть необходимого синтаксиса коллекций Java, а неуказывают на необязательные элементы. Массив можно объявить двумя способами:
· с определенным набором начальных значений. Размерность этого множества определяет размер массива – он будет в точности таким, чтобы вместить все эти значения, и его размер будет оставаться неизменным в течение всего срока службы массива.
Объявление массива В общем случае массив объявляется так:
Существует два способа создания массива целочисленных элементов. Этот оператор создает пустой массив на пять элементов:
Этот оператор создает массив и сразу все инициализирует:
Начальные значения заключены в фигурные скобки и разделяются запятыми.
Популярное:
|
Последнее изменение этой страницы: 2016-07-14; Просмотров: 581; Нарушение авторского права страницы