Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Java - Сортировка строк по первому слову в алфавитном порядке

Ответить
Настройки темы
Java - Сортировка строк по первому слову в алфавитном порядке

Старожил


Сообщения: 208
Благодарности: 5

Профиль | Отправить PM | Цитировать


люди добрые помогите пожалуйста
есть программа которая читает из файла и по кнопочками удаляет добавляет и редактирует записи в файле,
и вот когда она читает из файла на страницу, записи надо отсортировать записи по фамилии в алфавитном порядке
помогите пожалуйста реализовать эту сортировку

Код: Выделить весь код
<%@page contentType="text/html" pageEncoding="windows-1251"%>
<%@page import="java.io.*, java.util.*, java.text.Collator"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%!
 String strConvert(String src, String cp1, String cp2) throws UnsupportedEncodingException
  {
   byte[] buf=src.getBytes(cp1);
   String rez=new String(buf,cp2);
   return rez;
  }

 String showSome(String some)
  {
     if (some==null)
         return "";
     else
         return "<font face=\"Arial\" size=\"-1\" color=\"blue\" style=\"font-weight:700\">"+some+"</font>";
  }
%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
        <title>Пример веб-приложения на JSP и сервлетах</title>
        <script>
            function chkRadio()
            {

             if((document.f.recno==null)||document.f.recno==undefined)
                 return false;

             selflag=document.f.recno.checked?true:false;
       
              for(i=0; i<document.f.recno.length;i++)
               {
                if(document.f.recno[i].checked)
                 {
                  selflag=true;
                  break;
                 }
               }
              return selflag;
            }

            function chkEdit()
            {
             if ((document.f.fio.value=="")||(document.f.nz.value=="")||(document.f.mrk.value=="")||(document.f.ind.value==""))
                 return false;
             else
                 return true;
            }


            function checkForm(arg)
            {
              switch (arg)
              {
                  case 'add':
                      if(!chkEdit())
                          alert("Заполните все поля!");
                      else
                          {
                          document.f.todo.value="0";
                          document.f.submit();
                          }

                      break;

                  case 'del': 
                        if(!chkRadio())
                            alert("Ни одна запись не выбрана!");
                        else
                          {
                          document.f.todo.value="1";
                          document.f.submit();
                          }

                      break;
                  
                  case 'chg':
                        if(!chkRadio())
                            alert("Ни одна запись не выбрана!");
                        else
                         if(!chkEdit())
                           alert("Заполните все поля!");
                         else
                          {
                          document.f.todo.value="2";
                          document.f.submit();
                          }
                        break;

                  case 'delall':
                      if(confirm("Удалить ВСЕ записи?"))
                          {
                          document.f.todo.value="3";
                          document.f.submit();
                          }
              }
            }
        </script>
    </head>
    <body>
        <h2 align="center" style="color:#771111">Ведомость успеваемости по курсу</h2><h1 align="center" style="color:#111177">"Прикладные аспекты повышения качества оказания эффективного содействия тем, кто ничего не делает"</h1>
        <form name="f" action="<%=request.getContextPath()+"/filer"%>" method="post">
        <table border="1" align="center" cellpadding="3" cellspacing="3" width="75%">
            <tr bgcolor="#e0e0e0">
                <th>
                    № п/п
                </th>
                <th>
                    ФИО
                </th>
                <th>
                    № зачетной книжки
                </th>
                <th>
                    Оценка
                </th>
                <th>
                    Индекс оценки
                </th>
                <th>
                    Выбрать запись
                </th>
            </tr>
            <%
            String fname="c:\\tmp\\myfile.dat", fio, nz, mrk, ind;
            int i=0;
            RandomAccessFile f;
            BufferedReader br;
            try{
            f=new RandomAccessFile(fname, "r");
            while(f.getFilePointer()<f.length())
                {
                fio=strConvert(f.readLine(),"cp1252","cp1251");
                nz=strConvert(f.readLine(),"cp1252","cp1251");
                mrk=strConvert(f.readLine(),"cp1252","cp1251");
                ind=strConvert(f.readLine(),"cp1252","cp1251");
                i++;                
                %>

                <tr bgcolor="#eeeeee">
                    <td><%=i%></td>
                    <td><%=fio%></td>
                    <td><%=nz%></td>
                    <td><%=mrk%></td>
                    <td><%=ind%></td>
                    <td align="center"><input type="radio" name="recno" value="<%=i%>"></td>
                </tr>
                <%

                }
            f.close();
           
            }
            catch(Exception e)
                {
                %>
                <tr>
                    <td colspan="6" align="center"><b>Исключение: <%=e.toString()%></b></td>
                </tr>
                <%
          
                }
            finally
                    {
                
                        }
            
            String[] listUnsort = {"1.jpg", "10.jpg", "100.jpg", "200.jpg", "11.jpg", "110.jpg"};
        System.out.println("До сортировки: "+Arrays.toString(listUnsort));
        Arrays.sort(listUnsort);
        System.out.println("После сортировки: "+Arrays.toString(listUnsort));
            %>

        </table>
            <hr width="70%">
            <table width="60%" border="0" align="center" bgcolor="#eeeedd"
                   style="color: blue;font-style: oblique; border-left: solid olive; border-right: solid olive; border-bottom: solid olive; border-top: solid olive; font-weight: 700">
                <tr>
                    <td>
                        ФИО:<input type="text" size="35"  name="fio">
                    </td>
                    <td>
                        Номер зачетки:<input type="text" size="20"  name="nz">
                    </td>
                    <td>
                        Оценка:<input type="text" size="20"  name="mrk">
                    </td>
                    <td>
                        Индекс:<input type="text" size="10"  name="ind">
                    </td>
                </tr>
            </table>

            <hr width="60%">
            
            <div align="center" >
                <input type="button" value="Добавить запись" onclick="checkForm('add');">     
                <input type="button" value="Удалить запись" onclick="checkForm('del');">     
                <input type="button" value="Изменить запись" onclick="checkForm('chg');">     
                <input type="button" value="Удалить все записи" onclick="checkForm('delall');">     
                <input type="reset" value="Сброс">
                <input type="hidden" name="todo" value="zero">
            </div>

        </form>
        <hr width="50%">
        <div align="center"><%=showSome((String)session.getAttribute("status"))%></div>
        <div align="right"><a href="<%=request.getContextPath()+"/serverinfo"%>">Посмотреть все заголовки</a></div>

        
    </body>
</html>
Спасибо!

Отправлено: 10:37, 22-12-2011

 

Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


попробуйте считывать сначала в двумерный массив, в нем сортировать и затем выводить на страницу

Отправлено: 11:15, 22-12-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 208
Благодарности: 5

Профиль | Отправить PM | Цитировать


да по поводу двумерных массивов я много видел постов на разных форумах
не могли бы Вы подсказать как сделать эту сортировку? с ней то как раз и проблема

Отправлено: 11:18, 22-12-2011 | #3


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


pogo, У вас на java есть возможность:
1. Создать список строк
2. Отсортировать его
3. Использовать отсортированный по назначению

К примеру на С++ это делается так:

Код: Выделить весь код
...
   TStringList *lst = new TStringList; // Создаём динамически список строк
   String FileName = "C:\\List.txt"; // Указываем путь к текстовому файлу: одна строка - одна фамилия
   lst->LoadFromFile(FileName); // Грузим файл в список
   lst->Sort(); // Сортируем...
   // Всё, список lst отсортирован
...

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 18:35, 22-12-2011 | #4


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


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

с двумерными массивами не то

лучше, наверное, это http://www.javaportal.ru/java/articles/sort.html

Отправлено: 01:39, 23-12-2011 | #5


Старожил


Сообщения: 208
Благодарности: 5

Профиль | Отправить PM | Цитировать


Спасибо! буду пробовать!)

Отправлено: 08:05, 23-12-2011 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Java - Сортировка строк по первому слову в алфавитном порядке

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Загрузка - [решено] Компьютер подготавливается к первому использованию Skyver-x Microsoft Windows 7 23 01-04-2019 08:01
Первому устройству на Android исполнилось 3 года OSZone News Новости информационных технологий 0 24-09-2011 06:30
Google заплатит первому взломавшему защиту Chrome $20 тыс. Gold Dragon Новости информационных технологий 3 08-02-2011 19:04
Сборка компьютера по последнему слову техники. Keroberas Выбор отдельных компонентов компьютера и конфигурации в целом 6 29-01-2011 22:14
Можно ли альбомы разместить в алфавитном порядке в Моем мире на мил ? micro8 Хочу все знать 0 28-12-2010 12:32




 
Переход