| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > чтение файла |
| Автор: linkil 21.1.2012, 17:29 | ||||
| подскажите есть файл в котором лежат данные такого вида
Делаю через сканер
получаю NumberFormatException если значения "сливаются" т.е. 2.080000000000E+02-1.019375000000E+02 как лучше обработать такую строку ? Спасибо |
| Автор: dorogoyIV 21.1.2012, 18:42 |
может быть обрабатывать по точке? два точка нуль, один точка нуль т.е. находить начало числа по точке, потом делить на токены? |
| Автор: Pawl 21.1.2012, 22:29 | ||
судя по примеру, все Ваши числа одинаковой длины и каждая строка начинается с нового числа, а не с "хвоста" предыдущего. В этом случае я бы считывал файл построчно, а потом отрезал бы от строки куски по 18 или 19 символов (в зависимости от знака) и парсил бы этот кусок в double.
Если же числа разной длины и расположены в разных строках, то тогда лучше использовать регулярные выражения, что сложнее. |
| Автор: turbanoff 24.1.2012, 07:50 | ||||
Регулярку можно взять и чужую, если не разбираетесь. Например отсюда http://stackoverflow.com/questions/3681242/java-how-to-parse-double-from-regex немного допиливаем под наши ограничения. Зато ничего не разъедется при малейшем исправлении
|