Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Работа со строками

Содержание

Строки в языке Java
Лабораторная №3. Работа со строками Строки в языке Java Класс String является основным классом, предназначенным для хранения и обработки строк символов. Особенностью класса String является то, что экземпляры этого класса не могут быть Основные методы класса String Преобразование к строке Класс String является в некотором смысле исключительным классом в Конкатенация строк Для строк определена операция конкатенации, обозначаемая знаком +. Это бинарная ЗаданиеРеализовать алгоритм поиска подстрок с помощью конечного автомата Постановка задачи Пусть у нас есть две строки: текстовая строка Т и Конечный автомат КА — это набор некоторых состояний, а путь от состояния КА в случае поиска подстрок Входная последовательность: символы текста T. Число состояний Пример Входной текст:  GTAACAGTAAACG. Шаблон: ААС. Круги представляют состояния. Помеченные символами Входной текст:  GTAACAGTAAACG. Шаблон: ААС. КА перемещается на одно состояние Таблица next-state: Перемещение КА по состояниям при считывании символов из входного текста: Процедура поиска подстрокПроцедура String-Matcher(T, next-state, m, n).Вход: • Т, n – строка Шаги процедуры:1. Установить переменную state равной нулю.2. Для i = 1 до Несколько определений Префикс Рi шаблона Р представляет собой подстроку, состоящую из первых Определение нового состояния Если в состоянии k мы считали из текста префикс Алгоритм заполнения таблицы next-state1. Образуем строку Рk а . 2. Устанавливаем i ЗаданиеРеализовать алгоритм поиска подстрок с помощью конечного автомата: Создать строку и шаблон,
Слайды презентации

Слайд 2 Строки в языке Java

Строки в языке Java

Слайд 3 Класс String является основным классом, предназначенным для хранения

Класс String является основным классом, предназначенным для хранения и обработки строк

и обработки строк символов. Для создания экземпляров класса String

может быть использован один из следующих конструкторов:
String()
String(String str)
String(StringBuffer strbuf)
String(char[] arr)
String(char[] arr, int first, int count)
Первый из них создаёт пустую строку, второй и третий копируют содержимое объектов классов String и StringBuffer в созданный объект. Последние два конструктора позволяют создать строку на основе символьного массива или его части. Кроме того, любая объектная ссылка типа String может быть проинициализирована посредством присвоения ей строкового литерала, например:
String filename = "data.txt";

Слайд 4 Особенностью класса String является то, что экземпляры этого

Особенностью класса String является то, что экземпляры этого класса не могут

класса не могут быть изменены после их создания. Однако

это не создаёт ограничений для их использования, поскольку все методы, которые должны были бы изменять строку, просто создают новую модифицированную строку, оставляя исходную без изменений. Поясним работу этого механизма на примере:
String s = "abcd";
s = s.toUpperCase();
Здесь метод toUpperCase() создаёт новую строку, содержащую последовательность символов "ABCD", и возвращает ссылку на эту строку, которая присваивается переменной s, старое значение переменной теряется. Исходная строка остаётся в неизменном виде и, поскольку на неё больше не осталось объектных ссылок, будет удалена сборщиком мусора.

Слайд 5 Основные методы класса String

Основные методы класса String

Слайд 7 Преобразование к строке
Класс String является в некотором

Преобразование к строке Класс String является в некотором смысле исключительным классом

смысле исключительным классом в Java, поскольку любой тип данных

может быть преобразован к нему.

Для примитивных типов такое преобразование даёт их естественное строковое представление, для объектов вызывается метод toString(), определённый в классе Object и, следовательно, присутствующий в любом классе Java.

Слайд 8 Конкатенация строк
Для строк определена операция конкатенации, обозначаемая

Конкатенация строк Для строк определена операция конкатенации, обозначаемая знаком +. Это

знаком +.
Это бинарная операция, один из аргументов которой

должен иметь тип String. Она осуществляет автоматическое преобразование другого аргумента к типу String (если это необходимо) и слияние полученных строк. Это единственный случай, когда преобразование к строке осуществляется неявно.
Существует также операция конкатенации с присваиванием +=, первый аргумент которой должен иметь тип String, а второй может быть произвольным. При выполнении операции он будет преобразован к типу String.

Слайд 9 Задание
Реализовать алгоритм поиска подстрок с помощью конечного автомата

ЗаданиеРеализовать алгоритм поиска подстрок с помощью конечного автомата

Слайд 10 Постановка задачи
Пусть у нас есть две строки:

Постановка задачи Пусть у нас есть две строки: текстовая строка Т

текстовая строка Т и шаблонная строка Р. Надо найти

все вхождения Р в Т.
Если текст и шаблон состоят из n и m символов соответственно, то m ≤ n.
Решением будут все величины сдвигов Р относительно начала Т, отмечающие, где шаблон располагается в тексте: шаблон Р встречается в тексте со сдвигом s, если подстрока Т, которая начинается с s+1, в точности такая же, как и шаблон Р.
Минимально возможный сдвиг — нулевой. Так как шаблон не должен выходить за пределы текста, максимально возможный сдвиг равен n-m.

Слайд 11 Конечный автомат
КА — это набор некоторых состояний,

Конечный автомат КА — это набор некоторых состояний, а путь от

а путь от состояния к состоянию основан на последовательности

входных символов.

КА начинает работу с определенного состояния и по одному получает входные символы. Основываясь на состоянии, в котором он находится, и полученном символе, конечный автомат переходит в новое состояние.

Слайд 12 КА в случае поиска подстрок
Входная последовательность: символы

КА в случае поиска подстрок Входная последовательность: символы текста T. Число

текста T.
Число состояний КА: m+1 состояние (на 1

больше, чем количество символов в шаблоне Р), пронумерованное от 0 до m.
КА начинает работу из состояния 0.
Когда он находится в состоянии k, k последних считанных символов текста соответствуют первым k символам шаблона.
Всякий раз, когда КА входит в состояние m, он встретил в тексте весь шаблон.
КА хранит таблицу next-state, которая индексируется всеми состояниями и всеми возможными входными символами. Значение next-state[s,a] представляет собой номер состояния, в которое перейдет КА, если в настоящее время он находится в состоянии s и получил из текста символ а.

Слайд 13 Пример
Входной текст: GTAACAGTAAACG.
Шаблон: ААС.
Круги

Пример Входной текст: GTAACAGTAAACG. Шаблон: ААС. Круги представляют состояния. Помеченные символами

представляют состояния.
Помеченные символами стрелки показывают, как КА переходит

из одного состояния в другое при получении входных символов.
Выделенный толстыми стрелками "позвоночник" при прочтении слева направо дает шаблон ААС.

Слайд 14 Входной текст: GTAACAGTAAACG.
Шаблон: ААС.
КА

Входной текст: GTAACAGTAAACG. Шаблон: ААС. КА перемещается на одно состояние

перемещается на одно состояние вправо для каждого символа, который

соответствует шаблону, а для каждого символа, который ему не соответствует, он переходит влево или остается в том же состоянии.
Всякий раз, когда в тексте встречается шаблон, КА перемещается вправо по одному состоянию для каждого символа, пока не достигнет последнего состояния, где он объявляет, что найдено вхождение шаблона в текст.
Если стрелка отсутствует (например, стрелки, помеченные Т), соответствующий переход ведет в состояние 0.

Слайд 15 Таблица next-state:
Перемещение КА по состояниям при считывании

Таблица next-state: Перемещение КА по состояниям при считывании символов из входного

символов из входного текста:
Входной текст: GTAACAGTAAACG.
Шаблон:

ААС.

Слайд 16 Процедура поиска подстрок
Процедура String-Matcher(T, next-state, m, n).
Вход:

Процедура поиска подстрокПроцедура String-Matcher(T, next-state, m, n).Вход: • Т, n –

Т, n – строка текста и ее длина,
• next-state

– таблица переходов между состояниями, построенная для заданного шаблона,
• m – длина шаблона. Строки таблицы next-state индексированы от 0 до m, а столбцы индексированы символами, которые могут встретиться в тексте.
Выход: выводит все величины сдвигов, при которых в тексте встречается искомый шаблон.



Слайд 17 Шаги процедуры:
1. Установить переменную state равной нулю.
2. Для

Шаги процедуры:1. Установить переменную state равной нулю.2. Для i = 1

i = 1 до n:
A. Установить значение state равным

next-state[state, ti].
B. Если state = m, вывести сообщение
"Шаблон найден со сдвигом " i-m.



Слайд 18 Несколько определений
Префикс Рi шаблона Р представляет собой

Несколько определений Префикс Рi шаблона Р представляет собой подстроку, состоящую из

подстроку, состоящую из первых i символов Р.
Определим суффикс

шаблона как подстроку символов с конца Р. Например, AGA — суффикс шаблона ACACAGA.

Определим конкатенацию строки X и символа а как новую строку, получающуюся путем добавления а к концу X, и будем обозначать ее как Ха.

Слайд 19 Определение нового состояния
Если в состоянии k мы

Определение нового состояния Если в состоянии k мы считали из текста

считали из текста префикс Рk, т.е. последние k считанных

символов текста совпадают с первыми k символами шаблона.
Когда мы считываем следующий символ, скажем, a, мы считываем из текста строку Рkа (конкатенация Рk с а).
Префикс Р, считанный нами в этот момент, находится в конце Рkа, т.е. префикс Р должен являться суффиксом Рkа. Длина этого префикса и является номером следующего состояния.
Когда наидлиннейший префикс Р, который одновременно является суффиксом Рkа, оказывается пустой строкой, мы устанавливаем next-state[k,a] = 0.

Слайд 20 Алгоритм заполнения таблицы next-state
1. Образуем строку Рk а

Алгоритм заполнения таблицы next-state1. Образуем строку Рk а . 2. Устанавливаем

.
2. Устанавливаем i равным меньшему из значений k+1

(длина Рk а) и m (длина Р).
3. Пока Рi не является суффиксом Рkа, выполняем следующее действие:
А. Устанавливаем i равным i-1.

Найденное значение i и будет номером состояния КА, записываемым в ячейку next-state[k,a].


  • Имя файла: rabota-so-strokami.pptx
  • Количество просмотров: 121
  • Количество скачиваний: 2