Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2017, 16:20   #1
Stonecold323
Новичок
Джуниор
 
Регистрация: 16.03.2014
Сообщений: 1
По умолчанию задача отсортировать файл по данным требованием

Доброго времени суток, есть задача отсортировать файл по данным требованием:
  1. остортировать строки по отношению столбам
  2. сортировать по первому столбу (если данные совпадает то по второму) и т.д все данные одной строки остается вместе
  3. числа сортируется по возрастанию, слова альфабитном порядке, числа идут первее слов
  4. столбы в строках раздетелены табуляциеи ("\т")

пример файла:
Код:
-2.2 2 3 4 329 2
2.2 12345q 69 -afg
2.2 12345q 69 -asdf
-22 1234234 asdfasf asdgas
-22 11 abc
-22 -3 4
-1.1
qqqq 1.1
после сортировки
Код:
-22 -3 4
-22 11 abc
-22 1234234 asdfasf asdgas
-2.2 2 3 4 329 2
-1.1
2.2 12345q 69 -afg
2.2 12345q 69 -asdf
qqqq 1.1
в данные момент у сделано считавание файла
Код:
public class ReadDataFile {
	public static List<List<String>> readData(String fileName) throws IOException {
		BufferedReader br = new BufferedReader(new FileReader(fileName + ".txt"));
		List<List<String>> data = new ArrayList<List<String>>();
		String line;
		while (true) {
			line = br.readLine();
			if (line == null)
				break;
			List<String>lines = Arrays.asList(line.split("\t"));
			data.add(lines);
			System.out.println(lines);
		}
		br.close();
		return data;

	}

}
и запись в другой файл

Код:
public class WriteToFile {

	public void writeToFile(String fileName) throws IOException {
		FileWriter writer = new FileWriter(fileName);
		List<List<String>> data = ReadDataFile.readData("input");
		
	/*	Collections.sort(data, new Comparator<List<String>>() {
			@Override
			public int compare(List<String> o1, List<String> o2) {
				// TODO Auto-generated method stub
				return o1.get(0).compareTo(o2.get(0));
			}
		});
		*/
		for (List<String> lines : data) {
			for (int i = 0; i < lines.size(); i++) {
				writer.write(lines.get(i));
				if (i < lines.size() - 1) {
					writer.write("\t");
				}
			}
			writer.write("\n");

		}
		writer.close();
	}
прошу совета, как реализовать сортировку по данным требованием
Stonecold323 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как проверить отрыт ли файл данным процессом? _Osaka Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 1 20.12.2015 21:16
Отсортировать файл по алфавиту Dimafeel Общие вопросы C/C++ 0 16.12.2015 00:42
Создать любой типизированный файл, ввести в него элементы массива количества 50 элементов, отсортировать массив, вывести в файл vany Паскаль, Turbo Pascal, PascalABC.NET 6 01.04.2014 07:19
Отсортировать файл. Паскаль nicklifs Помощь студентам 15 27.12.2011 16:55
Отсортировать файл с ростом первых букв предложений.. dragon_pb_ Общие вопросы C/C++ 0 01.12.2011 22:40