Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
101 / 22 / 7
Регистрация: 10.11.2010
Сообщений: 208
1

Ошибка при сравнении массива

30.07.2012, 00:42. Показов 710. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот код:
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
public void actionPerformed(ActionEvent  ae)
    {
       String YourNumb[]=new String [5];//Поле с числами играка
       String WinNumb[]=new String [5];//Поле с выиграшними числами
       
        YourNumb[1]=f1.getText();
        YourNumb[2]=f2.getText();
        YourNumb[3]=f3.getText();
        YourNumb[4]=f4.getText();
        YourNumb[5]=f5.getText();
        
        WinNumb[1]=vin1.getText();
        WinNumb[2]=vin2.getText();
        WinNumb[3]=vin3.getText();
        WinNumb[4]=vin4.getText();
        WinNumb[5]=vin5.getText();
        
        for(int i=0; i<=5; i++)
        {
          for(int m=0; m<=5; m++)
           {
            if(YourNumb[i].equals(WinNumb[m]))
             {
              result.append("Числа равны!");
             }
            else 
             result.append("Числа не равны!");
           }
           //if (f1.getText().equals(vin1.getText()))
        }
    }
Ошибки:
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
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at loto.EntMas.actionPerformed(Loto.java:148)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6505)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6270)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4861)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2713)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
    at java.awt.EventQueue.access$000(EventQueue.java:101)
    at java.awt.EventQueue$3.run(EventQueue.java:666)
    at java.awt.EventQueue$3.run(EventQueue.java:664)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:680)
    at java.awt.EventQueue$4.run(EventQueue.java:678)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
ПОСТРОЕНИЕ УСПЕШНО ЗАВЕРШЕНО (общее время: 4 секунд)

Обработка не происходит, из-за чего эти ошибки?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2012, 00:42
Ответы с готовыми решениями:

Переполнение типов при сравнении
Возник такой вопрос, как в Java борятся с таким конфузом:class User { private long id; ...

Не срабатывает if при сравнении переменной типа String со значением
Всем привет! Укажите на мою ошибку. Считываю значение с консоли и сравниваю его со значением в...

Ошибка при сравнении элемента массива и значения из textbox
Задача следующая: организовать авторизацию пользователей. Имена и пароли пользователей хранятся в...

Ошибка при сравнении элемента динамического массива с числом
Здравствуйте! При попытке сравнения элемента двухмерного динамического массива с числом возникает...

2
614 / 488 / 175
Регистрация: 02.03.2010
Сообщений: 1,238
30.07.2012, 07:12 2
Потому что индексы начинаются с 0, соответственно, создавая:
Java
1
2
String YourNumb[]=new String [5];//Поле с числами играка
String WinNumb[]=new String [5];//Поле с выиграшними числами
получатся массивы по 5 элементов с индексами 0,1,2,3,4.
Меняем на
Java
1
2
3
4
5
6
7
8
9
10
11
YourNumb[0]=f1.getText();
        YourNumb[1]=f2.getText();
        YourNumb[2]=f3.getText();
        YourNumb[3]=f4.getText();
        YourNumb[4]=f5.getText();
        
        WinNumb[0]=vin1.getText();
        WinNumb[1]=vin2.getText();
        WinNumb[2]=vin3.getText();
        WinNumb[3]=vin4.getText();
        WinNumb[4]=vin5.getText();
А условия в циклах на:
Java
1
i<=4;
или
Java
1
i<5;
Основная ошибка NullPointerException вызвана обращением к элементу с 0 идексом в первой итерации (когда i=0) цикла, т.к. массив объектного типа String и по умолчанию каждый элемент инициализируется как null.
Если бы массивы имели примитивный тип, например int, short, float (и т.д.) то ошибка была бы уже ArrayIndexOutOfBoundsException.

Добавлено через 21 минуту
P.S. и, если следовать логике, сравнивать надо, наверное, так:
Java
1
2
3
4
5
6
7
8
9
for(int i=0; i<5; i++)
        {
            if(YourNumb[i].equals(WinNumb[i]))
             {
              result.append("Числа равны!");
             }
            else 
             result.append("Числа не равны!");           
}
1
101 / 22 / 7
Регистрация: 10.11.2010
Сообщений: 208
31.07.2012, 00:10  [ТС] 3
Спасибо. очень помог. Теперь дело сдвинулось с мертвой точки))) Не поверишь, я сидел полтора дня. рыскал где только мог и пусто, вот что свежий взгляд и опыт дает!)
Спасибо!!!)
0
31.07.2012, 00:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2012, 00:10
Помогаю со студенческими работами здесь

Сортировка List<struct>: "ошибка при сравнении двух элементов массива."
Имеется примерно такой код: struct aBox { public int...

Ошибка при сравнении
Доброго всем времени суток, ребята помогите, не могу понять что я делаю не так. Ошибка: Оператор...

Ошибка при сравнении переменных
Люди добрые,помогите пожалуйста!Специально зарегистрировался,чтобы задать этот вопрос. Либо у меня...

Ошибка при сравнении символов
пытаюсь сравнить символ и выдаёт ошибку void __fastcall TForm1::Button1Click(TObject *Sender) { ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru