Обработка текстовой информации средством языка JAVA
Курсовая работа
Обработка текстовой информации средством языка JAVA
ВВЕДЕНИЕ
программирование java редактор
Для начала разберемся что такое «Java»,
когда он был создан и кем, для чего он нужен, какие возможности имеет Java,
ну и наконец, как можно обработать текст c
помощью него.
Java является
языком программирования, он был разработан в компаний «Sun
Microsystems», затем было
куплена «Java» компанией
Оracle. Основная черта
Java - переносимость. Изначально Java разрабатывался согласно принципу WORA:
Write Once - Run Anywhere. Исходный код компилируется в байт-код, который
исполняется виртуальной машиной. Программа, написанная на Java и
откомпилированная в байт-код, может без изменений быть перенесена на любую ОС,
где есть виртуальная машина Java.
Приложение «Java»
была официально доступно 23 мая 1995 года. Что означала начало всех созданных
приложении с помощью JAVA.
И каждый мог создавать свою собственную программу, приложение, и т.д.
Тема была разделена для лучшего понимание на
четыре составные:
Java
Текстовая информация
Обработка строки
Java Основные
Задачи
1. ВОЗНИКНОВЕНИЕ
«Java»
Создателем языка программирование с помощью
приложение «Java» является
Джеймс Гослинг. Джеймсон Гослинг говорил что создавал продукт который поможет
написать программу для бытовых электронных устройств.
Однажды Джеймс сидел все размышлял, какое же
название дать своему приложение или редактору, напротив него было открыто окно,
он посмотрел и увидел дуб, так появилось первое название «Оак» что в переводе с
английского означает «Дуб». Затем дали название «Java»
который был создан для написания любых приложение, а также серверного
ПО(программное обеспечение).
Так откуда появилось название Java?
Ответ на этот вопрос был очень прост, как ни странно, названо было в честь
знаменитой марки кофе Java,
которая, получила название одноимённого острова (Ява)
где изготавливали кофе. Вот откуда появилась такая эмблема, где изображено
чашка с парящим кофе.
. JAVA
В Java
самым важным является JVM(JavaVirtualMachine).
Так как без JVM код,
написанный просто, текст, который
понимаем мы с вами, но не
компьютер. Ему нужно объяснить прицепом бинарных кодов.
JVM - это
программа, которая обрабатывает байтовые коды, передающие в инструкции
оборудования как интерпретатор. Программы написанные с помощью Java
могут быть выполняемы виртуальной машиной Java
(JVM). Плюсом JVM
является, полная независимость байтовых кодов от ОС и оборудования, поэтому
данный продукт Java
выполняется на любом устройстве, где присутствует соответствующая виртуальная
машина.
Другой важной особенностью технологии Java
является гибкая система безопасности благодаря тому, что исполнение программы
полностью контролируется виртуальной машиной. Любые операции, которые превышают
установленные полномочия программы (например, попытка несанкционированного
доступа к данным или соединения с другим компьютером) вызывают немедленное
прерывание.
Часто к недостаткам концепции виртуальной машины
относят то, что исполнение байт-кода виртуальной машиной может снижать
производительность программ и алгоритмов, реализованных на языке Java. В
последнее время был внесен ряд усовершенствований, которые несколько увеличили
скорость выполнения программ на Java:
· применение технологии трансляции
байт-кода в машинный код непосредственно во время работы программы (JIT
<#"786062.files/image002.gif">
Пример 2.
Используем String , где уже
будет написан Привет Мир!
. МЕТОДЫ В КЛАССЕ STRING
length() - показывает длину строки,
точнее возвращает число Int;
например, нам нужно узнать, сколько
количество букв в слове, для этого мы используем данный метод:
indexOf(char ch) - показывает под
каким индексом стоит выбранный символ в строке, возвращает число Int;
Далее буду показывать только ту
основную часть кода с применением данных методов.( т.е. все что записано в Main);
toUpperCase() - данная операция
делает все символы в строке прописными.
String
toLowerCase() - выполняет обратное действие, т.е. все прописные в строчные.
replace(char с1, char с2) - делает
замену символа с1 на с2;trim() - выполняет операцию избавление пробелов в
начале и конце строки.charAt(int position) - операция чтобы узнать под каким
индексом находится символ( важно отметить что нумерация в Java происходить
с нуля).isEmpty() - проверяет на наличие пустой строки, т.е. TRUE если пустая
строка, FALSE если хоть
один символ есть;
Во всех случаях вызова методов,
изменяющих строку, создается новый объект типа String.
String substring(int position) - операция
чтобы вырезать определенный часть текста, int position означает то
что именно с этого числа берет за началу отрезка и до конца строки.
String substring(int position, int position1) - так же
вырезает часть определенного текста, но уже зафиксированные координаты, точнее
можно выбрать какой отрезок нужно вырезать и в дальнейшем им пользоваться.
Int compareTo(String second) - данный
метод очень удобен, если нужно сравнивать две совсем разные слова, если первое
слово больше то метод возвращает значение +10, если второе больше то возвращает
-10, ну и когда они оба равны то возвращает значение равной нулю.nextLine() - это
метод, который возвращает целую строчку.
6. JAVA ОСНОВНЫЕ
ЗАДАЧИ ПО ОБРАБОТКЕ ТЕКСТА
-найти нужный символ, нужные слова
или текст;
-заменить или удалить символ, слова
или текст;
-написание текста прописными или
строчными;
-написание текста в
лексикографическом порядке.
Для того чтоб нам было легко работать с текстом,
скорее все было лучше все хранить в массиве, если текст объемный, ну и с
массивами легче работать, достать или заменить под определенным индексом
хранится символ или слово.
Массив (в некоторых языках
программирования
<http://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F>
также таблица, ряд) - набор однотипных компонентов (элементов),
расположенных в памяти непосредственно друг за другом, доступ к которым
осуществляется по индексу <http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_%28%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%29>
(индексам). В отличие от списка
<http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%28%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0%29>,
массив является структурой с произвольным доступом.
Размер массива - это количество
рядов, или так называемые индексы ячеек.
Массивы бывают одномерные,
двухмерные и нулевым. Нулевой массив скаляр, одномерный называются вектором,
двухмерный называются матрицы.
Самое важное массив хранит только
одного и того же типа, он не может хранить сразу несколько типов. Если вы
составили массив из String то там можно хранит только String.
Для примера я покажу одну и туже
операции над массивами на двух языках это Java и Pascal
Простои массив с использованием
набор целых чисел, которые хранятся в массиве
JAVAclass
Massiv{static void main(String args []) throws Exception{Dlina = 5;
int[]
massiv = new int[Dlina];(int i = 0; i<5;i++)[i]=i+1;(int i =
0;i<5;i++).out.print(massiv[i]+” “);
}
}
2 3 4 5
Результатом вывода
будет следующее:
Теперь на Паскале
PASCALi:integer;massiv:array[1..5]
of integer;i:=1 to 5 do[i]:=i;i:=1 to 5 do(massiv[i]);.
Результатом вывода будет следующее
Задан текст, состоящий из строк произвольной
длины. Строки разделяются одним или несколькими символами, называются
разделителями. Разделители одинаковы для всего текста. Текст заканчивается
комбинацией двух специальных символов, отличительных от разделителя. Выполнить
над текстом последовательные действий, указанную в задании.
)Определить количество строк; (немного усложнил
себе задание, сделал чтоб не строки считал, а сколько слов в тексте)
)Сформировать новый текст, в котором строки
упорядочены в лексикографическом порядке.
)Определить количество вхождений для каждого
символа, который встречался хотя бы один раз;
import
java.util.Scanner;java.io.File;class Zadanie1{static void main(String
args[])throws Exception{in = new Scanner(new File("TEXT.txt"));str =
in.nextLine();counter=0,counter2 = 0;(int i =
0;i<str.length();i++){(str.charAt(i)==' ' || str.charAt(i)=='.' ||
str.charAt(i)==','){(str.substring(i-counter2,i).length()>=3)++;
}else counter2++;
}.out.println("Количество
слов
в
тексте:
"+counter);
}
public class Zadanie2{
public static void main(String
args[])throws Exception{in =new Scanner(new File("TEXT.txt"));text =
in.nextLine();slova[] = new String[text.length()];result=0, result2 = 0; int
counter=0,counter2 = 0;(int i = 0;i<text.length();i++){(text.charAt(i)==' '
|| text.charAt(i)=='.' || text.charAt(i)==','){ [counter] =
text.substring(counter2,i);=i+1;counter++; }
}zamena = "", str1 =
"", str2 = "";(int i = 0;i<counter;i++){(int j =
i;j<counter-1;j++){= slova[i]; str2 = slova[j+1];= str1.compareTo(slova[j+1]);=
str2.compareTo(slova[i]);(result<result2) zamena = slova[i];{ zamena =
slova[i]; slova[i]=slova[j+1];
slova[j+1]=zamena;
}
}
} }
import
java.util.Scanner;java.io.File;class Zadanie3{static void main(String
args[])throws Exception{in =new Scanner(new File("TEXT.txt"));text =
in.nextLine();[] c = new int[91];check = 0;(int i = 65;i<91;i++){(int j =
0;j<text.length();j++){= (int)text.charAt(j);(check==i)c[i]=c[i]+1;
} }(int i =
65;i<91;i++){ch = (char)c[i];.out.print("Буква
"/"+ch+"/" встречается:
"+c[i]+" ");
}
}
}
7. ЛЕКСИЧЕСКИЙ АНАЛИЗ ТЕКСТА
Когда мы используем методы из класса String,
и меняем там содержимое, то в памяти компьютера создается новый объект этого же
класса. Сохранить изменения в объекте класса String можно только с применением
оператора присваивания, т.е. установкой ссылки на этот новый объект.
Класс StringTokenizer содержит методы,
позволяющие разбивать текст на лексемы, отделяемые разделителями. Набор
разделителей по умолчанию: пробел, символ табуляции, символ новой строки,
перевод каретки. В задаваемой строке разделителей можно указывать другие
разделители, например «= , ; : ».
Класс
StringTokenizer имеет конструкторы:(String
str);(String str, String delimiters);(String str, String
delimiters,delimAsToken);
Парочка методов:nextToken()
- метод
который
возвращает
объект.
boolean hasMoreTokens() - если строка имеет хоть
один символ, то этот метод возвращает TRUE.сountToken()
- что на подобие счетчика, количество символов.
Что насчет истории то это версия класса была
создана когда была написана первая версия приложения JAVA
для создания программ и приложения. Но не стоит забывать, что в наше время
существует куда более мощные версии, где однозначно много функциональности и
стабильности, более интересные возможности по обработке текстовой информации.
ЗАКЛЮЧЕНИЕ
Изучая данную тему, я вспомнил то, что проходил
года 3 назад, особенно как я мучился при написании кодов на обычном блокноте,
но благодаря этому хорошо запомнились все операции, методы, и написание
конструкторов в Java.
Данная тема хорошо иллюстрирует, то что именно большой толчок в области
программирование дал приложение Java
которая изначально создавался для написание программ бытовых оборудования. По
моему сравнению Java
является более упрошенная в пользование написание кодов чем остальные
редакторы, такие как Pascal,
хотя я его изучил совсем мало, но замучился уже через час.
Несмотря на всю свою сложность, приложение JAVA
установлено более 3 млр. устройств, и это число растет.
Множество компаний вдохновило
приложение JAVA, так как
можно было добавить собственный язык, который мог считываться виртуальной
машиной, которые в дальнейшем будут использованы для создания программ. Эти
идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI
<http://ru.wikipedia.org/wiki/Common_Language_Infrastructure>, заложенной
в основу платформы .NET <http://ru.wikipedia.org/wiki/.NET_Framework>
компанией Microsoft <http://ru.wikipedia.org/wiki/Microsoft>.
Данная тема объемная, интересная и
познавательная, я извлек много полезного.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1.Васильев А.Н. C#.
Объектно-ориентированное программирование - 2012г. - 315 с.
.Веретенникова Е.Г., Патрушина С.М,
Савельева Н.. Информатика 2008. - 412 с.
.Голицына О.Л., Программирование на
языках высокого уровня; учеб. пособие.2013. - 495 с.
.Меняев М.Ф., Информатика и основы
программирования, 2010г.,464с.
.Орлов С.А., Цилькер Б.Я. Технологии
разработки программного обеспечения. Современный курс по программной инженерии,
2012. - 608 с..
.Пышкин Е.В. Основные концепции и
механизмы объектно-ориентированного программирования учеб. Пособие. 2009. - 628
с.
.Симонович С.В, Евсеев Г.А, Алексеев
А.Г., Специальная информатика, 2009. - 479 с.
. Симонович С.В., Информатика.
Базовый курс 2011. - 638 с.
.Росс Г.В, Дулькин В.Н, Сысоева
Л.А.Основы информатики и программирования 2010г.- 160 с.