Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> NumberFormat, cannot find symbol 
:(
    Опции темы
SkyVelvet
Дата 19.2.2013, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.2.2013

Репутация: нет
Всего: нет



Код

import java.text.NumberFormat;
import java.io.*;

public class Lab1 {
    

    public static void main(String[] args) throws IOException {
        
        
        java.text.NumberFomat nf = java.text.NumberFomat.getInstance();
                nf.setMaximumFractionDigits(2);
.
.
.
.
}

Почему не находит NumberFomat ?
Код

C:\Users\Fruity\Desktop>javac lab1.java point3d.java
lab1.java:18: error: cannot find symbol
                java.text.NumberFomat nf = java.text.NumberFomat.getInstance();
                         ^
  symbol:   class NumberFomat
  location: package java.text
lab1.java:18: error: cannot find symbol
                java.text.NumberFomat nf = java.text.NumberFomat.getInstance();
                                                    ^
  symbol:   class NumberFomat
  location: package java.text
2 errors



PM MAIL   Вверх
dorogoyIV
Дата 20.2.2013, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



Цитата(SkyVelvet @  19.2.2013,  22:57 Найти цитируемый пост)
java.text.NumberFomat

букву r пропустил  smile 
PM MAIL   Вверх
SkyVelvet
Дата 20.2.2013, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.2.2013

Репутация: нет
Всего: нет



Цитата(dorogoyIV @ 20.2.2013,  09:25)
Цитата(SkyVelvet @  19.2.2013,  22:57 Найти цитируемый пост)
java.text.NumberFomat

букву r пропустил  smile

Спасибо) Глупая ошибка, под вечер устал не заметил.

Добавлено через 14 минут и 30 секунд
Не стал создавать новую тему ,но сейчас проблема совершенно в другом.
Мне нужно отловить ошибку ,в случае если пользователь вводит с клавиатуры не корректные данные.
В программе пользователю предоставляется возможность ввести координаты трёх точек, но я хочу ,что бы пользователь увидел нормальную ошибку во время выполнения программы ,в случае если он вводит не числа типа double. Ну допустим вместо числа пользователь ввел "as67\fg" и в этом случае он должен увидеть ошибку типа этой System.out.println("Ошибка. Вводите корректные данные точек");
Код

/* Вводим координаты первой точки.*/
        System.out.println("Введите координату Х первой точки");
        String cStr = bReader.readLine();
        num = Double.parseDouble(cStr);
        p1.setX(num);
        
        System.out.println("Введите координату Y первой точки");
        String cStr1 = bReader.readLine();
        num = Double.parseDouble(cStr1);
        p1.setY(num);
        
        System.out.println("Введите координату Z первой точки");
        String cStr2 = bReader.readLine();
        num = Double.parseDouble(cStr2);
        p1.setZ(num);

......... и так все координаты для двух оставшихся точек.

Создавал блок try - catch после ввода всех точек.

Код

try {
            /* Исключения. */
            num = Double.parseDouble(cStr);
            num = Double.parseDouble(cStr1);
            num = Double.parseDouble(cStr2);
            num = Double.parseDouble(cStr3);
            num = Double.parseDouble(cStr4);
            num = Double.parseDouble(cStr5);
            num = Double.parseDouble(cStr6);
            num = Double.parseDouble(cStr7);
            num = Double.parseDouble(cStr8);
            comma = Integer.parseInt(cStr9);
        }
        catch (IOException e) {
            System.out.println("Ошибка. Вводите корректные данные точек");
            System.exit(1);
        }


При компиляции вот такая ошибка:
Код

C:\Users\Fruity\Desktop>javac lab1.java point3d.java
lab1.java:100: error: exception IOException is never thrown in body of correspon
ding try statement
        catch (IOException e) {
        ^
1 error

PM MAIL   Вверх
batigoal
Дата 20.2.2013, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Смотрим докуметацию на Double.parseDouble():

Цитата

public static double parseDouble(String s)
                          throws NumberFormatException
Returns a new double initialized to the value represented by the specified String, as performed by the valueOf method of class Double.
Parameters:
s - the string to be parsed.
Returns:
the double value represented by the string argument.
Throws:
NumberFormatException - if the string does not contain a parsable double.


Т.е. будет выбрасываться не IOException, а NumberFormatException - его и лови.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
SkyVelvet
Дата 20.2.2013, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.2.2013

Репутация: нет
Всего: нет



Цитата(batigoal @ 20.2.2013,  17:36)
Смотрим докуметацию на Double.parseDouble():

Цитата

public static double parseDouble(String s)
                          throws NumberFormatException
Returns a new double initialized to the value represented by the specified String, as performed by the valueOf method of class Double.
Parameters:
s - the string to be parsed.
Returns:
the double value represented by the string argument.
Throws:
NumberFormatException - if the string does not contain a parsable double.


Т.е. будет выбрасываться не IOException, а NumberFormatException - его и лови.

Если я ловлю NumberFormatException ,то вот что вылезает когда пользователь вводит не то что нужно.

Код

C:\Users\Fruity\Desktop>java -cp . Lab1
Введите координату Х первой точки
f

Exception in thread "main" java.lang.NumberFormatException: For input string: "f
"
        at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
        at java.lang.Double.parseDouble(Unknown Source)
        at Lab1.main(lab1.java:38)


А по задумке должно вылезать System.out.println("Ошибка. Вводите корректные данные точек");

Добавлено через 3 минуты и 26 секунд
По сути попробовал без блока try - catch ввести не правильные данные и происходит то же самое. Как будто этот блок вообще ничего не делает.
PM MAIL   Вверх
Pawl
Дата 20.2.2013, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



Блок try / catch написан правильно (с учетом NumberFormatException). Вот простейший рабочий пример:
Код

public class InputTest {
    public static void main(String[] args) {
     double num = 0;
        try {
            num = Double.parseDouble("f");
        }
        catch (NumberFormatException e) {
            System.out.println("Ошибка. Вводите корректные данные точек");
            System.exit(1);
        }
    }
}
 смотрите косяки в других частях вашей программы.

Это сообщение отредактировал(а) Pawl - 20.2.2013, 21:23


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
SkyVelvet
Дата 20.2.2013, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.2.2013

Репутация: нет
Всего: нет



throws IOException ,а зачем нужна эта приписка после main? Просто это из за неё выдается эта ошибка
Код

C:\Users\Fruity\Desktop>java -cp . Lab1
Введите координату Х первой точки
f
Exception in thread "main" java.lang.NumberFormatException: For input string: "f
"
        at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
        at java.lang.Double.parseDouble(Unknown Source)
        at Lab1.main(lab1.java:38)

Но без этой приписки не работает bReader.readLine();
PM MAIL   Вверх
batigoal
Дата 21.2.2013, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Из-за нее ошибка возникать не может. Это просто объявление, что в этом участке кода возможно возникновение IOException (да, в методе readLine()). Но это не значит, что ошибка обязательно должна произойти.

Выкладывайте код Lab1 целиком. Ну и заодно - почитайте про механизм обработки исключений в Java, без этого все равно не обойтись.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
SkyVelvet
Дата 21.2.2013, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.2.2013

Репутация: нет
Всего: нет



Цитата(batigoal @ 21.2.2013,  10:00)
Из-за нее ошибка возникать не может. Это просто объявление, что в этом участке кода возможно возникновение IOException (да, в методе readLine()). Но это не значит, что ошибка обязательно должна произойти.

Выкладывайте код Lab1 целиком. Ну и заодно - почитайте про механизм обработки исключений в Java, без этого все равно не обойтись.

Спасибо огромное за помощь) Действительно на утро прочитал про обработку исключений http://aectann.wikidot.com/java-exceptions-handling ,в этой статье оч хорошо все расписано. И понял в чем была ошибка. Решил проблему так ,что в блок try {} занес кусок кода где я считываю все что вводит пользователь 
Код

System.out.println("Введите координату Х первой точки");
        String cStr = bReader.readLine();
        num = Double.parseDouble(cStr);
        p1.setX(num);
......и все последующие считывания для всех точек.

Ну ,а блок catch даже и не изменял.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0840 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.