Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Mupok
4 / 4 / 0
Регистрация: 24.07.2012
Сообщений: 76
1

Ошибка в коде. Подробности внутри

02.12.2012, 03:47. Просмотров 378. Ответов 2
Метки нет (Все метки)

Здравствуйте
Вот программа:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package tunel_package;
import static java.lang.Math.*;
public class tunel {
   public final static double      // ve vypoctech uzivejte tyto hodnoty !
       G = 6.6742E-11,     // [m^3 sec^-2 kg^-1] gravity constant             
       R = 6.378E6,        // [m]        planet Earth radius 
       M = 5.974E24,       // [kg]       planet Earth mass 
       g = G*M/(R*R),     // [m sec^-2] gravity acceleration on surface  
       V = PI*4/3*R*R*R,  // [m^3]      sphere volume 
       w = M/V;           // [kg m^-3]  density
     
   public final static String[] locus = {  // priklady lokalizace ruznych mist.
       "90°  0' 0     \"N    14°  23' 20.49 \"E ",      //0  North pole
       "20°           \"E    90°  0'        \"S ",      //1  South pole
       "50°  6' 19.45 \"N    14°  23' 20.49 \"E ",      //2  Menza CVUT - vchod
       "50°  6'  8.90 \"N    14°  23' 33.84 \"E ",      //3  FEL Dejvice - vchod                   
       "50°  4' 45.134\"N    14°  25' 50.071\"E ",      //4  Nar. Muzeum, Praha
       "50°  4' 45.134\"S   165°  34' 39.929\"W ",      //5  Nar. Muzeum protinoha                  
       "51° 30' 45.49 \"N     0°  07' 17.15 \"W ",      //6  Brit. Museum, London
       "37° 52' 17.40 \"N   122°  15' 56.77 \"W ",      //7  Univ. Berkeley Calif.
       "36° 51' 00.84 \"S   174°  46' 09.21 \"E ",      //8  Univ. Auckland,  NZ
       "31° 14' 12.44 \"N   121°  30' 09.77 \"E ",      //9  The Opener, ShangHai
       "37° 47' 41.78 \"N   122°  24' 08.85 \"W ",      //10 The Needle, SF/Calif. 
       "22° 24' 08.85 \"W    57°  47' 41.78 \"N ",      //11 Point A
       "47° 47' 41.78 \"N    22°  24' 08.85 \"W ",      //12 Point B
       "55° 45'     0 \"N    37°  37'     0 \"E ",      //13 Point c
       "59° 53'     0 \"N    30°  15'     0 \"E ",      //14 Point d
    };
     
    public static void main(String[] args) {
        double[] point  = rad(locus[1]);
        System.out.println(point[0]);
        
        System.out.println("tunnel length [m] = ");     // 1. FAZE
        System.out.println("surface distance [m] = ");
        System.out.println("maximal depth [m] = ");
        
        System.out.println("travel time [sec] = ");     // 2. FAZE
        System.out.println("maximal speed [m/sec] = ");
        System.out.println("average speed [m/sec] = ");
    }
    public static double[] rad(String point){          //cte jednu radku, pak chova informace
                                                        //[0] - sirka, [1] - delka
        double[] rad_metoda = new double[2];                
        int count = 0;                                  // scitac 1
        for (int z = 0; z < 2; z++) {
            String pamet = "";
            boolean check = false;                      //true kdyz precte sirku
            for (int i = count; i < point.length(); i++) {
                if(point.charAt(i) == (char)176)break;  //jestli °
                if((point.charAt(i) >= 48) && (point.charAt(i) <= 57)) {    //jestli vic nez 0 a mene nez 9
                    pamet += point.charAt(i);
                }
                count++;
            }
            rad_metoda[z] = Double.valueOf(pamet);      // prevod ze stringu do double
            pamet = "";
            for (int i = count; i < point.length(); i++) {                
                if(point.charAt(i) == 39){break;}       // jestli '
                if(point.charAt(i) == 34){              // jestli "
                    check = true; break;
                }
                if((point.charAt(count) >= 46) && (point.charAt(count) <= 57)){
                pamet += point.charAt(count);                
                }
                count++;
            }
            if(!check){
                rad_metoda[z] += (Double.valueOf(pamet)/60);
                pamet = "";
                for (int i = count; i < point.length(); i++) {
                    count++;
                    if(point.charAt(i) == 34){
                        check = true; break;
                    }
                    if((point.charAt(i) >= 46) && (point.charAt(i) <= 57)){
                        pamet += point.charAt(i);
                    }
                }
                rad_metoda[z] += (Double.valueOf(pamet)/3600);
            }
        /*    if(check){
                switch(point.charAt(count)){
                    case 'N': rad_metoda[0] = 90 - rad_metoda[0];   break;
                    case 's': rad_metoda[0] = 90 + rad_metoda[0];   break;
                    case 'W': rad_metoda[1] = 360 - rad_metoda[1];  break;
                    case 'E': break;
                }
            }*/
            count++;
            rad_metoda[z] = (rad_metoda[z]*Math.PI)/180;
        }
        return rad_metoda;
    }
}
Выводит вот что:
run:
Exception in thread "main" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1011)
at java.lang.Double.valueOf(Double.java:504)
at tunel_package.tunel.rad(tunel.java:111)
at tunel_package.tunel.main(tunel.java:58)
Java Result: 1
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 0

at tunel_package.tunel.rad(tunel.java:111) -------->>>rad_metoda[z] += (Double.valueOf(pamet)/3600);
at tunel_package.tunel.main(tunel.java:58) -------->>>double[] point = rad(locus[1]);

Почему выдает ошибку, как ее решить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 03:47
Ответы с готовыми решениями:

Почему вываливается ошибка? Подробности внутри
Изучаю библиотеку SFML. При написании анимации персонажа VC подчеркивает функцию IntRect....

Не могу справиться. Подробности внутри
Задача следующая. Есть форма. На ней есть ричбокс. Внутри него пользователь пишет код на с++. ...

Не грузится Windows 7 (подробности внутри)
Перестала грузиться Windows 7 на ноутбуке, зависает намертво в самом начале загрузки во время...

Установка Windows XP на флэшку. Подробности внутри!
Флэшка pqi 8gb. Хочу записать на флэшку Windows XP SP2003. Следую по этой статье:...

дан двумерный массив(подробности внутри)
дан двумерный массив ,найти максимальное число в спомогательной диагонали Решите пожалуйста.

2
MLPMan
Кандёхаем веселее!
291 / 302 / 76
Регистрация: 02.10.2012
Сообщений: 2,105
02.12.2012, 05:40 2
Если
Java
1
2
3
4
public static void main(String[] args) {
 double[] point  = rad(locus[3]);  //Вместо double[] point  = rad(locus[1]);
//(...)
}
или если
Java
1
2
locus[1] = "20°  0' 0        \"E    90°  0' 0       \"S "
// Вместо locus[1] = "20°           \"E    90°  0'        \"S "
То работает... Вы там в методе rad считываете значение после символа ', а в locus[1] оно пустое.
0
Mupok
4 / 4 / 0
Регистрация: 24.07.2012
Сообщений: 76
02.12.2012, 06:57  [ТС] 3
Проблема решена другим способом. Я поставил условие на даблвалуеОФ если строка НЕ пустая то выполняется.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 06:57

не могу разобраться с jquery галереей.подробности внутри
сам я в java script и jquery не силён. для веб пользуюсь пхп а для приложений юзаю C# . сейчас ...

Проводной компьютер и беспроводной ноутбук (подробности внутри)
Имеется в другой квартире компьютер и ноутбук. (компьютер подключен через сетевой кабель в модем);...

Калькулятор логических/арифметических операций(подробности внутри)
1ый курс одного электротехнического вуза! Суть программы, которую нужно написать: Написать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru