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

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

02.12.2012, 03:47. Просмотров 466. Ответов 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.NumberFormatExceptio n: empty String
at sun.misc.FloatingDecimal.readJ avaFormatString(FloatingDecima l.java:1011)
at java.lang.Double.valueOf(Doubl e.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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2012, 03:47
Ответы с готовыми решениями:

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

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

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

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

2
Кандёхаем веселее!
295 / 324 / 76
Регистрация: 02.10.2012
Сообщений: 2,164
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
4 / 4 / 0
Регистрация: 24.07.2012
Сообщений: 76
02.12.2012, 06:57  [ТС] 3
Проблема решена другим способом. Я поставил условие на даблвалуеОФ если строка НЕ пустая то выполняется.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2012, 06:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

Черный экран при загрузке ОС (подробности внутри)
Собственно, происходит загрузка, POST сообщения, появляется логотип Win XP, затем через несколько...


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

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

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