![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| oguretzz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.9.2006 Репутация: нет Всего: нет |
Допустим программа должна работать с файлом-библиотекой, такого типа: double double string.
Т.е. например: 0.66 0.87 Cs-137 0.79 0.57 Cs-134 ......и т.д. Вопрос такое: как без анализа строки просто считать данные из такого файла? Дело в том, я новичок в Java, а в C++ подобные вещи делал очень просто через оператор ">>". Таким образом не анализируя строку (это уже описано в операторной ф-ции ">>") просто считывал значения нужного типа. Есть подозрение что аналогичным образом можно действовать и в Java, но я пока не нашел подходящего способа. Прошу подсказать как это правильно делать в Java с наименьшими затратами. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| powerOn |
|
||||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Допустим есть у нас такой txt файл:
Вот код программы нашей:
Вот результат её выполнения:
Добавлено @ 17:02 Оперэдыли!!! |
||||||
|
|||||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Маленькое дополнение, я в своем примере не написал, и тут тоже не указанно, но потоки надо закрывать за собой.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ma_lover |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: -1 Всего: нет |
powerOn, добрый день.
Поддерживает ли Ваш вариант программы с использованием метода Scanner чтение арифметических операций? Когда я ввёл в текстовом файле знаки арифметических операций, то стектрейс вывел следующее: java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:819) at java.util.Scanner.next(Scanner.java:1431) at java.util.Scanner.nextInt(Scanner.java:2040) at java.util.Scanner.nextInt(Scanner.java:2000) at NewClass.main(NewClass.java:13) Заранее спасибо. Это сообщение отредактировал(а) ma_lover - 25.8.2007, 14:40 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Смотря что подразумевать под чтением арифметических операций. Если нужно прочитать сами знаки этих операций, то да поддерживает. Их надо читать через next(). А если надо провести вычисления по этим операциям, то тут уже нужно использовать скриптовые языки, типа BeanShell. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ma_lover |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: -1 Всего: нет |
нужно счиать сами знаки для начала..а потом провести вычисления по этим операциям, но для этого я хочу написать свой алгоритм. Не могли бы вы дать небольшой пример с методом next , чтобы было понятнее.
Спасибо. |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Вот слегка модифицированный пример powerOn:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| Kisja |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
Сканер - это хорошая штука, только вот мне нужно прочитать данные из строк такого типа:
где 446.43 - число типа double. Для чтения пробую использовать код:
При чтении значения v = sc.nextDouble(); получаю ошибку java.util.InputMismatchException (не совпадает тип). Когда число записано как 446,43 (с запятой вместе точки), то сканер воспринимает его как double. Как быть? |
||||||
|
|||||||
| Kangaroo |
|
|||
|
AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
Kisja, Scanner использует текущую локаль для определения формата чисел. Поэтому вам нужно задать локаль, в которой вещественные числа через точку.
Попробуйте вот так:
-------------------- Lost.... |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |