Прочитать два файла (текст) и сравнить для общих значений и вывести строку? - PullRequest
0 голосов
/ 01 февраля 2012

Вопрос: у меня есть два файла, один со списком серийных номеров, предметов, цен, месторасположения и других файлов. Поэтому я хотел бы сравнить два файла и распечатать количество повторений элементов в файле file1 с серийным номером.

Файл Text1 будет иметь

enter image description here

Файл Text2 будет иметь

enter image description here

Вывод должен быть

enter image description here

Таким образом, файл1 не отформатирован в правильном порядке, а файл 2 - в порядке (строка за строкой).

Ответы [ 5 ]

3 голосов
/ 01 февраля 2012

Поскольку у вас нет очевидного кода или усилий, вложенных в это, я лишь намекаю / покажу вам некоторые инструменты, которые вы можете использовать.

Для разбора строк: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

Для чтения из файла: http://www.roseindia.net/java/beginners/java-read-file-line-by-line.shtml

И я бы порекомендовал сначала прочитать файл №2 и сохранить эти значения в массиве списков, возможно, так что вы сможете просмотреть их позже, когда будете выполнять поиск.

0 голосов
/ 01 февраля 2012

Используйте регулярное выражение.

Step one, tracing and splitting at [\d,], store results in map
Step two, read in the word from the second file. say it's "pen"
Step three, do regex search "pen" on each string within the map.
Step four, if the above returns true , do something like ([A-Z][A-Z],) on each string within the map.
0 голосов
/ 01 февраля 2012

Такие проблемы не лучше всего решаются с помощью монолитного кода JAVA. Если у вас нет ограничений на инструмент, то рекомендуемый способ его решения - импортировать данные из файла 1 в таблицу базы данных, а затем выполнить запросы из вашей программы, чтобы получить любую информацию, которая вам нравится. Вы можете легко выбрать серийные номера на основе предметов и сгруппировать их для подсчета в зависимости от местоположения.

Этот подход гарантирует, что вы сможете идти в ногу с изменяющимися требованиями, и если ваши файлы огромны, у вас будет хорошая производительность.

Надеюсь, вы хорошо разбираетесь в инструментах SQL и DB, поэтому я не стал публиковать подробности о них.

0 голосов
/ 01 февраля 2012

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

Для каждого элемента у него есть вся информация (например, серийный номер, имя, цена,местоположение), но не в определенном порядке.Итак, вы должны обратить внимание и использовать следующие шаблоны, когда читаете каждый элемент из файла1 -

  • Серийный номер всегда является простым целым числом.
  • Цена имеет значение $и . символ.
  • Местоположение длиной 2 символа, все заглавные.
  • И имя строки не может быть любым из перечисленных.
0 голосов
/ 01 февраля 2012

Хорошо, мой подход к этому будет

  1. Считать в файл1 и файл2 в строку
  2. «Разделить» строку в файле 1, а также в файле2 на основе «,», если это то, что используется
  3. Проверяйте элемент в каждом третьем, чтобы моя итерация повторяла +3 каждый раз (возможно, вам придется отсортировать, если не по порядку, оба из них)
  4. Если найден магазин в Array, ArrayList и т. Д. Вернитесь к шагу 3, если имеется больше элементов. Еще остановка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...