Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Сортировка чисел с файла |
Автор: ddj 17.3.2010, 00:49 | ||||
Суть : в файле имеим нп : Том 200 катя 300 соня 110 Надо сделать сортировку только чисел, но имена должны остаться : катя 300 Том 200 соня 110
несоздаёт почему то файла. Пробывал и вот так :
Нзн правильно ли смыслю, но идея моя такова. Может кто небудь смог бы помоч.. ? |
Автор: aleksandy 17.3.2010, 06:08 |
Насколько я понимаю, все правильно сортируется ![]() З.Ы. SortedMap<Integer, String> нужно создавать с обратным компаратором, т.к., я смотрю, тебе нужна обратная сортировка. |
Автор: powerOn 17.3.2010, 10:59 |
Можно создать компаратор, который выделить числа из строк и на основании сравнения этих чисел даст результат сравнения этих строк. А сортировать через Collections.sort(). |
Автор: Metal_Heart 17.3.2010, 13:38 |
попробуй добавить writer.flush(); перед writer.close(); |
Автор: batigoal 17.3.2010, 14:33 |
Может, создает, но не там, где ищешь? |
Автор: ddj 18.3.2010, 23:15 | ||
Metal_Heart, всё павно незаписывает в файл.. Мне кажется что во тут что то нетак :
aleksandy, С мап неумею.. Хотелось бы с этим способом догнать до конца. |
Автор: dobrolub 18.3.2010, 23:46 | ||||
Я понимаю что сортировать надо по второму полю. Значит надо его вычленить сначала, а потом сортировать. запускать с помощью java T inputfile outputfile
проверка результата:
|
Автор: ddj 19.3.2010, 20:51 | ||
Operator ! cannot be applied to java.lang.string.isEmpty такой еррор кидает, пишу в NetBeans И мне нелзя подавать через командноую строку файлов, так как я пишу программу СЕРВЕР -> КЛИЕНТ Там одна ф-я записывает имя играков и очки в файл.А вторая открывает файл -> сортирует и записывает в другой файл. |
Автор: dobrolub 19.3.2010, 21:01 | ||
netbeans наверно не может распарсить это условие. Добавь ему скобок вокруг str.trim().isEmpty()
|
Автор: ddj 20.3.2010, 20:30 | ||
dobrolub,
Всё равно непашит :/ Cannot find symbol symbol :method isEmpty() |
Автор: dobrolub 20.3.2010, 20:36 |
у тебя Java 5 значит. Это метод из Java 6. Замени на !("".equals(str.trim())) |
Автор: ddj 21.3.2010, 00:02 | ||||
dobrolub, проблема с тем еррором исчерпана. Спасибо. А как сделать чтобы несамому вводить название файла. Тоесть я считываю данные всегда с файла: rez.txt
И записываю всегда в out.txt
Как изменится вами написаный класс Record |
Автор: dobrolub 21.3.2010, 03:12 |
Лучше на 'ты' Рекорд измениться только если формат файла rez.txt изменить, например добавить полей или местами поменять и т.д. |
Автор: dorogoyIV 21.3.2010, 03:57 |
задача программиста - написать как можно более универсальную программу, dobrolub это нормально реализовал. если у тебя файлы статические, то можешь просто исправить 8 и 17 строку. вместо args [] писать имена файлов. и запускать будешь просто: java T |
Автор: ddj 21.3.2010, 21:27 | ||
dorogoyIV, Так я так и сделал, но токда кидает ошибку :
Error: non-static variable this cannot be referenced from a static context dobrolub, ясно, так а как переделать ? Потомучто у меня там программа СЕРВЕР -> КЛИЕНТ Она сама по умолчанию открывает файл сортирует и выдаёт ТОП игроков. |