powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите написсать прогу!!!(очень нужно , очень срочно:()
37 сообщений из 37, показаны все 2 страниц
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819240
everest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
буду очень благодарна если поможете написать задачку с XML..:
2) Реализовать быстрый поиск телефона по фамилии без учета регистра символов. Справочник хранится в XML файле со следующей структурой.

<phonebook>
<entry>
<firstname>Mark</firstname>
<surname>Twain</surname>
<number>+375 29 632494</number>
</entry>
<entry>
<firstname>Jo</firstname>
<surname>Dirty</surname>
<number>+375 29 332494</number>
</entry>
<entry>
<firstname>Andy</firstname>
<surname>Ham</surname>
<number>+375 29 623494</number>
</entry>

</phonebook>
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819356
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема вознагрождения не раскрытк
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819417
everest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шчырая беларуская БЛАГОДАРНОСТЬ!!
:)
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819493
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый вопрос, я подозреваю — "как прочитать XML из файла"?
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819554
everest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сознаюсь откровенно..мое представление об XML весьма поверхностно...и если я ещё смогу составить такой документ..то как реализовать поиск(или даже чтение) понему из JAVA никакого понятия вообще не имею:( так что буду очень благодарна если поможете(потому как нужно срочно) и посоветуете какую литературу толковую по этому вопросу, потому как разбираться все равно надо
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819564
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, так (с помощью SaxParser).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
 package  com.forward.test.goods;

 import  java.io.*;

 import  javax.xml.parsers.*;

 import  org.xml.sax.*;
 import  org.xml.sax.helpers.*;

 public   class  PhoneBookReader  extends  DefaultHandler
{
     private  String stringToSearch;
     private   final  String searchableTag = "surname";
     private   final  String dataTag = "number";
     public  PhoneBookReader (String search)
    {
         this .stringToSearch = search;
    }

     private  StringBuffer valueBuffer =  new  StringBuffer();

     private   boolean  found = false;
     private   boolean  getPhone = false;
     private  String lastSurname;


     public   void  endElement (String uri, String name, String qName)
             throws  SAXException
    {
        String val = valueBuffer.toString().trim();
         if  (val.length() >  0 ) {
             if  (qName.equals( this .dataTag)) {
                 if  (getPhone) {

                    System.out.println("FOUND PHONE '" + val + "' for '" + lastSurname + "'");
                    found = true;
                    getPhone = false;
                }
            }
             if  (qName.equals( this .searchableTag)) {
                 if  (val.equalsIgnoreCase( this .stringToSearch)) {
                    getPhone = true;
                    lastSurname = val;
                }
            }
        }
        valueBuffer =  new  StringBuffer();
    }

     public   void  characters ( char  ch[],  int  start,  int  length)
    {
         for  ( int  i = start; i < start + length; i++) {
             switch  (ch[i]) {
             case  '\\':
                 break ;
             case  '"':
                 break ;
             case  '\n':
                 break ;
             case  '\r':
                 break ;
             case  '\t':
                 break ;
             default :
                valueBuffer.append(ch[i]);
                 break ;
            }
        }
    }


     public   static   void  main (String args[])
             throws  Exception
    {
         if  (args.length !=  2 ) {
            System.out.println("Use PhoneBookReader <filename> <surnane>");
             return ;
        }  else  {

            System.out.println("Searching '" + args[1] + "' in file '" + args[0] + "'");

            PhoneBookReader reader =  new  PhoneBookReader(args[ 1 ]);

            SAXParserFactory factory = SAXParserFactory.newInstance();
            factory.setValidating(false);
            SAXParser parser = factory.newSAXParser();

            parser.parse( new  File(args[ 0 ]), reader);

             if  (!reader.found) {
                System.out.println("NO PHONES FOUND");
            }
        }
    }
}
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819566
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфутымля. Опять логин менять придеццо.
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819585
everest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо огромное!!
буду пытаться разбираться!!кстати, а в куда указывается файл чтения XML?т.е. куда прописывать где лежит мой справочник..как аргумент?тогда почему там на 2 элемента запрос...туплю...
?
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819838
maddcast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простой выход: XQEngine
Более функциональный: eXist
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819866
untitled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вы не слишком все усложняете?
почему бы не сделать простой парсинг текста, ведь тут по сути поный разбор хмля не нужен.
например как то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
 public   class  ooo {

     private   static  String getFileContent() {
         return  "<phonebook>\n" +
                "<entry>\n" +
                "<firstname>Mark</firstname>\n" +
                "<surname>Twain</surname>\n" +
                "<number>+375 29 632494</number>\n" +
                "</entry>\n" +
                "<entry>\n" +
                "<firstname>Jo</firstname>\n" +
                "<surname>Dirty</surname>\n" +
                "<number>+375 29 332494</number>\n" +
                "</entry>\n" +
                "<entry>\n" +
                "<firstname>Andy</firstname>\n" +
                "<surname>Ham</surname>\n" +
                "<number>+375 29 623494</number>\n" +
                "</entry>\n" +
                "</phonebook>";
    }

     public   static  String getTelNumber(String surname) {
         try  {
             return  getFileContent().toLowerCase().split("<surname>" + surname.toLowerCase(),  2 )[ 1 ].split("</number>",  2 )[ 0 ].split("<number>",  2 )[ 1 ];
        }  catch  (ArrayIndexOutOfBoundsException e) {
             return   null ;
        }
    }

    //example
     public   static   void  main(String args[]) {
        System.out.println(getTelNumber("twain"));
    }

}

и все, этого мне кажется вполне достаточно)
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819900
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
untitled
и все, этого мне кажется вполне достаточно)
XML подразумевает произвольное форматирование данных внутри тэгов.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<phonebook>

<entry>
     <firstname>
          Mark
     </firstname>
     <surname>
          Twain
     </surname>
     <number>+ 375   29   632494 </number>
</entry>
<entry>
     <firstname>
Jo</firstname>
     <surname>
          Dirty
               </surname>
     <number>
               + 375   29   332494 
          </number>
</entry>
<entry>
     <firstname>
          Andy
     </firstname>
     <surname>
          Ham
     </surname>
     <number>
          + 375   29   623494 
     </number>
</entry>
…
</phonebook>
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819901
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
untitled
и все, этого мне кажется вполне достаточно)
К тому же ваше решение мгновенно отсасывает как только телефонный номер начинает идти раньше фамилии.
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34819968
everest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Софтверный проктолог:
спасибо огромное, такое решение то что надо!!разобралась что куда надо списывать:)

и вооще всем огромное спасибо за отзывчивость!!
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34820324
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для быстрого поиска надо для начала проиндексировать файл. Тоесть выбрать ключевое поле, отсортировать по нему, а потом использовать алгоритм бинарного поиска. Иначе получится просто телефонный справочник в XML.

Если допустимо зачитать весь XML в память и уже в ней искать, то задача сильно упрощается.

Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34820332
everest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
учитывая то что я полный чайник в XML..а метод которым решили выше не аодходит?(я и в нем то если честно пока не ахти...тока скомпилировала)
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34820336
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох, давай аську, или ко мне стучись. Расскажу немного.
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34820371
everest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к тебе в асю постучаться не получилось--по такому номеру никто не проживает
так что стучись ко мне: 172052195(тока када будешь стучаться отпиши что это ты..а то в сети много турков):)
вопросов у меня море!!;)
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34820529
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
everestк тебе в асю постучаться не получилось--по такому номеру никто не проживает
так что стучись ко мне: 172052195(тока када будешь стучаться отпиши что это ты..а то в сети много турков):)
вопросов у меня море!!;)
Надо перемножить просто было=)

Я к тебе стукнулся, но сейчас убегу. Буду во второй половине дня.
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34821137
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinДля быстрого поиска надо для начала проиндексировать файл. Тоесть выбрать ключевое поле, отсортировать по нему, а потом использовать алгоритм бинарного поиска. Иначе получится просто телефонный справочник в XML.

Если допустимо зачитать весь XML в память и уже в ней искать, то задача сильно упрощается.
Это когда нам нужно искать на заданном наборе данных более одного раза в единожды запущенном приложении.
Ты уверен, что студентам это нужно?
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34821217
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уверен в том, что написано про быстрый поиск. Значит надо делать быстрый поиск:)
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34821239
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinЯ уверен в том, что написано про быстрый поиск. Значит надо делать быстрый поиск:)
Ставлю 50$, что в одиночном прогоне мой вариант будет работать в среднем в 2 раза быстрее твоего (с полным сканированием и построением индекса). А если ты будешь строить еще и DOM модель, а потом искать через XPath — втрое.
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34821331
everest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гыг
это тестовое задание на курсы по джаве..вощем я уже отправила..мне б терь к собеседованию разобраться в программе....
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34821444
untitled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог
XML подразумевает произвольное форматирование данных внутри тэгов.
К тому же ваше решение мгновенно отсасывает как только телефонный номер начинает идти раньше фамилии.


ок, а если так) :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
 import  java.util.HashMap;
 import  java.util.HashSet;
 import  java.util.Set;

 public   class  PhoneBook {

     private  HashMap<String, Set<BookEntry>> cache =  new  HashMap<String, Set<BookEntry>>();

     class  BookEntry {
         private  String firstname;
         private  String surname;
         private  String number;

         public  String toString() {
             return  firstname + " " + surname + " " + number;
        }

         public  String getFirstname() {
             return  firstname;
        }

         public   void  setFirstname(String firstname) {
             this .firstname = firstname;
        }

         public  String getSurname() {
             return  surname;
        }

         public   void  setSurname(String surname) {
             this .surname = surname;
        }

         public  String getNumber() {
             return  number;
        }

         public   void  setNumber(String number) {
             this .number = number;
        }
    }

     public  PhoneBook() {
        String[] entries = getFileContent().split("<entry>");
         for  ( int  i =  1 ; i < entries.length; i++) {
            String tmp = entries[i];
            BookEntry entry =  new  BookEntry();
             try  {
                entry.setFirstname(tmp.split("<firstname>")[ 1 ].split("</firstname>")[ 0 ].trim());
            }  catch  (ArrayIndexOutOfBoundsException e) {/**/}
             try  {
                entry.setSurname(tmp.split("<surname>")[ 1 ].split("</surname>")[ 0 ].trim());
            }  catch  (ArrayIndexOutOfBoundsException e) {/**/}
             try  {
                entry.setNumber(tmp.split("<number>")[ 1 ].split("</number>")[ 0 ].trim());
            }  catch  (ArrayIndexOutOfBoundsException e) {/**/}

             if  (cache.containsKey(entry.getSurname())) {
                cache.get(entry.getSurname().toLowerCase()).add(entry);
            }  else  {
                HashSet<BookEntry> set =  new  HashSet<BookEntry>();
                set.add(entry);
                cache.put(entry.getSurname().toLowerCase(), set);
            }
        }

    }

     private  String getFileContent() {
        StringBuffer t = new  StringBuffer("<phonebook>\n" +
                "<entry>\n" +
                "<firstname>Mark</firstname>\n" +
                "<surname>Twain</surname>\n" +
                "<number>+375 29 632494</number>\n" +
                "</entry>\n");
         for  ( int  i =  0 ; i <  10000 ; i++) {
            t.append("<entry>\n" +
                    "<firstname>" + ( char ) i + "</firstname>\n" +
                    "<surname>" + ( char ) (i + i) + "</surname>\n" +
                    "<number>" + ( int ) (i + i /  2 ) + "</number>\n" +
                    "</entry>\n");
        }
        t.append("</phonebook>");
         return  t.toString();
    }


     public  Set<BookEntry> findEntries(String surname) {
         return  cache.get(surname.toLowerCase());
    }

    //example
     public   static   void  main(String args[]) {
        PhoneBook book =  new  PhoneBook();
         for  (BookEntry e : book.findEntries("twain")) {
            System.out.println(e);
        }
    }

}
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34821544
jusio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 untitled

А где так учат код писать?
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34821685
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог SarinЯ уверен в том, что написано про быстрый поиск. Значит надо делать быстрый поиск:)
Ставлю 50$, что в одиночном прогоне мой вариант будет работать в среднем в 2 раза быстрее твоего (с полным сканированием и построением индекса). А если ты будешь строить еще и DOM модель, а потом искать через XPath — втрое.
В одиночном - да.
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34821698
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
everestгыг
это тестовое задание на курсы по джаве..вощем я уже отправила..мне б терь к собеседованию разобраться в программе....
Зачем же тебе курсы? Мы бы обучили тут, книжек тебе насоветовали...
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34821839
untitled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jusio2 untitled

А где так учат код писать?

а что то не так? скажите, я исправлюсь)
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822036
sendoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
untitled jusio2 untitled

А где так учат код писать?

а что то не так? скажите, я исправлюсь)Почему бы не объединить блоки try-catch в один?
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822092
untitled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sendoff Почему бы не объединить блоки try-catch в один?

можно, но если так сделать, то такая запись (без firstname) не будет обработана

<entry>
<surname>Twain</surname>
<number>+375 29 632494</number>
</entry>
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822442
sendoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
untitled sendoff Почему бы не объединить блоки try-catch в один?

можно, но если так сделать, то такая запись (без firstname) не будет обработана

<entry>
<surname>Twain</surname>
<number>+375 29 632494</number>
</entry>Тогда, мне кажется, что более предпочительный вариант, перед парсингом распознать, какие атрибуты есть. Такой код будет более читабельным.
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822611
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для любителей кэширования:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
 package  com.forward.test.goods;

 import  java.io.*;
 import  java.util.*;

 import  javax.xml.parsers.*;

 import  org.xml.sax.*;
 import  org.xml.sax.helpers.*;


 public   class  PhoneBookReader  extends  DefaultHandler
{
     private   final  String searchableTag = "surname";
     private   final  String dataTag = "number";

     private  Map<String, Collection<String>> cache =  new  HashMap<String, Collection<String>> ();

     public  PhoneBookReader ()
    {
    }

     private  StringBuffer valueBuffer =  new  StringBuffer();

     private  String lastSubject;

     public   void  endElement (String uri, String name, String qName)
             throws  SAXException
    {

        String val = valueBuffer.toString().trim();
         if  (val.length() >  0 ) {
             if  (qName.equals( this .dataTag)) {

                Collection<String> subjects = cache.get(lastSubject);
                 if  (subjects ==  null ) {
                    subjects =  new  ArrayList<String> ();
                    cache.put(lastSubject, subjects);
                }
                subjects.add(val);

                lastSubject =  null ;

            }  else   if  (qName.equals( this .searchableTag)) {
                lastSubject = val.toLowerCase();
            }
        }
        valueBuffer =  new  StringBuffer();
    }

     public   void  characters ( char  ch[],  int  start,  int  length)
    {
         for  ( int  i = start; i < start + length; i++) {
             switch  (ch[i]) {
             case  '\\':
                 break ;
             case  '"':
                 break ;
             case  '\n':
                 break ;
             case  '\r':
                 break ;
             case  '\t':
                 break ;
             default :
                valueBuffer.append(ch[i]);
                 break ;
            }
        }
    }
    
     public  Collection<String> getPhones(String surname) {
         return  cache.get(surname.toLowerCase());
    }


     public   static   void  main (String args[])
             throws  Exception
    {
         if  (args.length !=  2 ) {
            System.out.println("Use PhoneBookReader <filename> <surnane>");
             return ;
        }  else  {

            System.out.println("Searching '" + args[1] + "' in file '" + args[0] + "'");

            PhoneBookReader reader =  new  PhoneBookReader();

            SAXParserFactory factory = SAXParserFactory.newInstance();
            factory.setValidating(false);
            SAXParser parser = factory.newSAXParser();
            parser.parse( new  File(args[ 0 ]), reader);

            System.out.println("Search for surname '" + args[1] + "' = " + reader.getPhones(args[ 1 ]));
            System.out.println("Search for surname 'Ham' = " + reader.getPhones("Ham"));
            System.out.println("Search for surname 'kvakva' = " + reader.getPhones("kvakva"));

        }
    }
}

...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822640
mijer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мне больше так нравиться:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
 import  java.io.IOException;
 import  java.io.StringReader;
 import  java.util.List;

 import  org.jdom.Document;
 import  org.jdom.JDOMException;
 import  org.jdom.Text;
 import  org.jdom.input.SAXBuilder;
 import  org.jdom.xpath.XPath;

 public   class  Test {

     private   static   final  String XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
                                      "<phonebook> \n" +
                                      "    <entry> \n" +
                                      "        <firstname>Mark</firstname> \n" +
                                      "        <surname>Twain</surname> \n" +
                                      "        <number>+375 29 632494</number> \n" +
                                      "    </entry> \n" +
                                      "    <entry> \n" +
                                      "        <firstname>Jo</firstname> \n" +
                                      "        <surname>Dirty</surname> \n" +
                                      "        <number>+375 29 332494</number> \n" +
                                      "    </entry> \n" +
                                      "    <entry> \n" +
                                      "        <firstname>Andy</firstname> \n" +
                                      "        <surname>Ham</surname> \n" +
                                      "        <number>+375 29 623494</number> \n" +
                                      "    </entry> \n" +
                                      "    <entry> \n" +
                                      "        <firstname>Jo</firstname> \n" +
                                      "        <surname>Dirty</surname> \n" +
                                      "        <number>+375 29 332495</number> \n" +
                                      "    </entry> \n" +
                                      "</phonebook>";

     public   static   void  main(String[] args)  throws  JDOMException, IOException {
        String surname = "Dirty";
        SAXBuilder builder =  new  SAXBuilder();
        Document document = builder.build( new  StringReader(XML));
        List<Text> phones = XPath.selectNodes(document, 
                "/phonebook/entry[lower-case(surname) = lower-case('" + surname + "')]/number/text()");

         for (Text text : phones) {
            System.out.println(text.getTextTrim());
        }
    }
}
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822645
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mijerА мне больше так нравиться:
...
Sarin уже говорил о том, что всё сильно упрощается, если объем данных позволяет построить DOM-модель.
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822681
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог mijerА мне больше так нравиться:
...
Sarin уже говорил о том, что всё сильно упрощается, если объем данных позволяет построить DOM-модель.
Я не уверен на все сто, но мне кажется, что SAX тоже читает файл целиком. Если ему невалидный попытаться скормить он сразу сдохнет отрыгнув эксепшин.

Я говорил про то, что все приведённые варианты (кроме, кажется, одного) делают просто поиск. Надо же реализовать быстрый поиск!
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822685
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А то меряются тут все саксами и икспатхами... :) Я тож может икспатхи писать умею=))

Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822688
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin
Я не уверен на все сто, но мне кажется, что SAX тоже читает файл целиком. Если ему невалидный попытаться скормить он сразу сдохнет отрыгнув эксепшин.

Я говорил про то, что все приведённые варианты (кроме, кажется, одного) делают просто поиск. Надо же реализовать быстрый поиск!
Принцип работы SAX-парсера — сканирование файла с вызовом ряда методов, которые ты можешь переписать. Можно прервать его работу в любой момент.
Если включен валидатор — таки да, читает целиком.
...
Рейтинг: 0 / 0
Помогите написсать прогу!!!(очень нужно , очень срочно:()
    #34822929
jusio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
untitled jusio2 untitled

А где так учат код писать?

а что то не так? скажите, я исправлюсь)

За подобный код увольняют в ту же секунду без выходного пособия. Ваш код в лучшем случае в четыре раза медленнее чем то что предложил использовать софтверный проктолог. Советую подумать что делает split и сколько обьектов создаётся за один пробег цикла в вашем коде.
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите написсать прогу!!!(очень нужно , очень срочно:()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]