Новичок
Профиль
Группа: Участник
Сообщений: 1
Регистрация: 17.11.2011
Репутация: нет Всего: нет
|
есть html файл с параметрами и 2апплета 1апплет выводит на страницу исходный массив 2апплет выводит на страницу обработанный массив Код | // Файл Lr21.java // Лабораторная работы №2 "Классы в языке Java" // ================================================================ // Данный апплет Lr21 обеспечивает создание и инициализацию массива // на основе параметров из HTML-файла, а также вывод элементов // исходного массива в окно апплета. // ================================================================ // Аналогичный массив создается и инициализируется при выполнении // апплета Lr22, который , кроме того, выполняет обработку массива // в соответствии с заданием и выводит на экран результаты. // ================================================================ // Класс Elem, обеспечивающий хранение данных типов int, String // и доступ к ним, и класс Array, предназначенный для хранения // массива объектов класса Elem и работы с массивом, представлены // в файле Lr22.java. // ================================================================ // Выполнение апплетов Lr21 и Lr22, расположенных на одной HTML- // странице, позволяет сравнить исходный массив с массивом, // полученным в результате обработки. // ================================================================
import java.awt.*; import java.applet.*;
// Класс, производный от класса Applet public class Lr21 extends Applet { // Исходный массив для сравнения с результатами обработки Array myArray21; // Флаг ошибки int errf = 0; // Строки сообщения об ошибке String msg, msgException = "123"; // Шрифты для вывода исходного массива Font fnt1, fnt2; public void init() { // Строки для представления параметров апплета // Переменные, используемые при разборе параметров апплета int b1 = 0, b2 = 0,b3 = 0, e1, e2, e3; // Строка для представления извлекаемых из параметров // данных типов int и String текущего злемента массива // Переменная для хранения данного типа int текущего злемента массива int i; // Флаг инициализации массива boolean flag = true;
fnt1 = new Font("Dialog", Font.BOLD, 14); fnt2 = new Font("Dialog", Font.PLAIN, 14);
// Получение параметров апплета (исходных данных) String s1 = getParameter("SIZE"); String s2 = getParameter("NUMBERS"); String s3 = getParameter("STRINGS"); String s4 = getParameter("NAZV"); // Создание и инициализация массива if (s1 != null && s2 !=null && s3 != null && s4 != null) { try { i = Integer.parseInt(s1); myArray21 = new Array(i); } catch( Exception e) { msg = "Ошибка при указании размера массива:"; msgException = e.toString(); errf = 1; return; } // Разбор строк-параметров и добавление элементов в массив while(flag) { try { e1 = s2.indexOf(",", b1); if(e1 == -1) {e1 = s2.length(); flag = false;} String str = s2.substring(b1, e1); b1 = e1 + 1; i = Integer.parseInt(str); // Внимание!!! // Браузер (например, MS IE) может не поддерживать // методы parseType() некоторых классов-оболочек. // В этом случае следует воспользоваться другими // средствами для преобразования строкового // представления числа в данное простого типа. // Например, для значения переменной f типа float // используйте оператор : // f = Float.valueOf(str). floatValue(); e2 = s3.indexOf(",", b2); if(e2 == -1) {e2 = s3.length(); flag = false;} str = s3.substring(b2, e2); b2 = e2 + 1; e3 = s4.indexOf(",", b3); if(e3 == -1) {e3 = s4.length(); flag = false;} String naz = s4.substring(b3, e3); b3 = e3 + 1; myArray21.add(i, str +naz);
} catch( Exception e) { msg = "Ошибка при инициализации массива:"; msgException = e.toString(); errf = 1; return; } } } else { msg = "Отсутствует параметр в файле .html"; errf = 1; } }//init
public void paint(Graphics g) { if (errf == 0) { // Отображение в строке состояния браузера числа // инициализированных элементов массива
showStatus("Lr21-realSize = " + myArray21.getRealSize()); g.setFont(fnt1); g.drawString("Исходный массив:", 50, 25); g.setFont(fnt2); showArray(g, myArray21, 50); } else { g.drawString(msg, 50, 70); g.drawString(msgException, 50, 85); } }//paint
// Метод вывода элементов массива void showArray(Graphics g, Array mas, int xpos) { Elem element; for(int i = 0; i < mas.getRealSize(); i++) { element = mas.at(i); g.drawString("Элемент "+i+": " + element.getInt(), xpos, 50 + 25*i); g.drawString(element.getStr(), xpos + 75, 60 + 25*i); } }//showArray
}//Lr21
|
апплет2 Код | /* * To change this template, choose Tools | Templates * and open the template in the editor. */ import java.awt.*; import java.applet.*; class Elem { // Поля класса private int intField; private String strField; Elem (int i,String s) {intField = i; strField = s;}
// Методы доступа к данным String getStr() {return strField;}
int getInt() {return intField;}
void setStr(String str) {strField=str;} }//Elem
//Класс для хранения массива объектов класса Elem class Array { // Поля класса private Elem arrElem[]; private int realSize;
// Конструктор класса Array(int size) {arrElem = new Elem[size]; realSize = 0; } // Методы работы с массивом // ------------------------ // Возвращает размер массива int getSize() {return arrElem.length;}
// Возвращает число действительных элементов массива int getRealSize() {return realSize;}
// Возвращает указанный элемент массива Elem at(int i) {return (arrElem[i]);}
// Возвращает индекс элемента массива с указанными значениями // данных типов int, String. Если такой элемент отсутствует, // возвращает -1. int indexOf(int ii, String ss) { for (int k = 0; k < realSize; k++) if(arrElem[k].getInt() == ii && ss.equals(arrElem[k].getStr())) return k; return -1; } // Данный метод indexOf(), не используемый в классе Lr22, // включен для демонстрации метода equals() класса String. // Метод equals(), в отличие от оператора==, сравнивает // содержимое String-объектов, а не ссылки на них!
// Добавляет в массив элемент с указанными значениями // данных типов int, String void add(int i,String s) {arrElem[realSize] = new Elem(i, s); realSize++; }
// Возвращает индекс элемента массива с самой длинной строкой int great() {int i, j,lenr,len; for (i = len = j = 0; i < realSize; i++) {lenr=(arrElem[i].getStr()).length(); if (lenr > len) {len = lenr; j = i;} } return j; }
// Удаляет элементы массива, в которых целочисленные // данные не превышают указанного значения void delete(int j) {int i, k; for (i = k = 0;i < realSize; i++) if (arrElem[i].getInt() > j) arrElem[k++] = arrElem[i]; realSize = k; } // Обратите внимание! Элементы массива (ссылки на объекты типа // Elem), не подлежащие удалению, просто переписываются в новую // позицию, удаляемые элементы - пропускаются. Определяется // новое число действительных элементов массива. }//Array public class Lr22 extends Applet { Array myArray22; // массив для обработки int errf = 0; // флаг ошибки String msg, msgException = ""; // строки сообщения об ошибке // сумма целочисленных данных элементов массива int index; // индекс злемента с самой длинной строкой Font fnt1, fnt2; // шрифты для вывода результатов обработки public void init() { // Строки для представления параметров апплета //String s1, s2, s3, s4; // Переменные, используемые при разборе параметров апплета int b1 = 0, b2 = 0,b3 = 0, e1, e2, e3; // Строка для представления извлекаемых из параметров // данных типов int и String текущего злемента массива String strings; String str; String nam; // Переменная для хранения данного типа int текущего злемента массива int i; Elem elem; // Флаг инициализации массива boolean flag = true; // Число инициализированных (действительных) элементов массива int rs;
fnt1 = new Font("Dialog", Font.BOLD, 14); fnt2 = new Font("Dialog", Font.PLAIN, 14);
// Получение параметров апплета (исходных данных) Applet appLR21 = getAppletContext().getApplet("Lr21"); String s1 = appLR21.getParameter("SIZE"); String s2 = appLR21.getParameter("NUMBERS"); String s3 = appLR21.getParameter("STRINGS"); String s4 = appLR21.getParameter("NAZV"); // Создание и инициализация массива if (s1 != null && s2 !=null && s3 != null && s4 != null) { try { i = Integer.parseInt(s1); myArray22 = new Array(i); } catch( Exception e) { msg = "Ошибка при указании размера массива:"; msgException = e.toString(); errf = 1; return; } // Разбор строк-параметров и добавление элементов в массив while(flag) { try { e1 = s2.indexOf(",", b1); if(e1 == -1) {e1 = s2.length(); flag = false;} str = s2.substring(b1, e1); b1 = e1 + 1; i = Integer.parseInt(str); // Внимание!!! // Браузер (например, MS IE) может не поддерживать // методы parseType() некоторых классов-оболочек. // В этом случае следует воспользоваться другими // средствами для преобразования строкового // представления числа в данное простого типа. // Например, для значения переменной f типа float // используйте оператор : // f = Float.valueOf(str). floatValue(); e2 = s3.indexOf(",", b2); if(e2 == -1) {e2 = s3.length(); flag = false;} strings = s3.substring(b2, e2); b2 = e2 + 1; e3 = s4.indexOf(",", b3); if(e3 == -1) {e3 = s4.length(); flag = false;} nam = s4.substring(b3, e3); b3 = e3 + 1; if(i > 1000) { strings = strings.toUpperCase(); nam = nam.toUpperCase(); } //else //{ nam = null;} // Обработка строк при инициализации: // преобразование символов строк в символы нижнего регистра myArray22.add(i,strings +nam ); //if ((all.length()%2)==1) // {all = nam+123;} } catch( Exception e) { msg = "Ошибка при инициализации массива:"; msgException = e.toString(); errf = 1; return; } } // Обработка массива в соответствии с заданием // ------------------------------------------------------------ rs = myArray22.getRealSize(); // В оставшихся элементах массива замена первого символа строки // первым символом самой длинной в массиве строки {index = myArray22.great(); } // ------------------------------------------------------------ } else { msg = "Отсутствует параметр в файле .html"; errf = 1; } }
public void paint(Graphics g) { int rs; Elem element; String s; if (errf == 0) { rs = myArray22.getRealSize(); // Отображение в строке состояния браузера числа // действительных элементов массива showStatus("Lr22-realSize = " + rs); if (rs > 0) { g.setFont(fnt1); g.drawString("Результаты обработки:",50,25); g.setFont(fnt2); showArray(g, myArray22, 50); element = myArray22.at(index); s = element.getStr(); g.drawString("Самая длинная строка: " + s, 50, 85 + 25*rs); } else g.drawString("Массив после обработки пуст", 50, 70); } else { g.drawString(msg, 50, 70); g.drawString(msgException, 50, 85); } }//paint
// Метод вывода элементов массива void showArray(Graphics g, Array mas, int xpos) { Elem element; for(int i = 0; i < mas.getRealSize(); i++) { element = mas.at(i); g.drawString("Элемент "+i+": " + element.getInt(), xpos, 50 + 25*i); g.drawString(element.getStr(), xpos + 75, 60 + 25*i); } }//showArray }
|
html Код | <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <TITLE>Лабораторная работа N2</TITLE> </head> <CENTER> <P><H4>Студент гр. САБ-114 Полякова А. В.</H4> <HR WIDTH = 85%> <TABLE> <CAPTION><H3>Лабораторная работа N2 "Классы в языке Java"</H3></caption> <TR> <TD> <APPLET CODE = Lr21.class NAME = Lr21 WIDTH = 500 HEIGHT = 500> <PARAM NAME="SIZE" VALUE="12"> <PARAM NAME="NUMBERS" VALUE="245,354,666,951,1001,15,1200,555,222,1932"> <PARAM NAME="STRINGS" VALUE="Горький ,Пушкин ,Достоевский ,Некрасов , Булгаков ,Толстой ,Арбузов ,Каверин ,Грин ,Гайдар -"> <PARAM NAME="NAZV" VALUE="Мертвые души,Повести Белкина,Преступление и наказание,В больнице,Мастер и Маргарита,Петр I,Жестокие игры,Два капитана,Алые паруса,Тимур и его команда"> </APPLET></TD> <TD><APPLET CODE = Lr22.class WIDTH = 500 HEIGHT = 500> </APPLET></TD> </TR> </table> <HR WIDTH = 85%> </CENTER> </HTML>
|
мне необходимо чтобы если в имени автора (NAME) чётное число символов то убрать из массива этот элемент как это сделать? сегодня весь день мучался а не придумал как
|