Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2012, 00:53   #1
gostix
 
Регистрация: 18.10.2010
Сообщений: 3
По умолчанию Не вижу ошибку :-( (массивы)

Задача этого куска кода в том, что бы узнать суму в строке "s". Выдает исключение java.lang.NullPointerException, мол указываю на не существующий элемент, но я не могу понять но хоть убейте не понимаю чего. Код сам писал...
Код:
import java.util.StringTokenizer;

public class Calc {
	String s="10 + 5 + 5"; 
	String s1;	
	
	
	public void strtz(){
			String pr;
			int end;
			int x=0;
			String[] primer = new String[10];
			String[] primer2 = new String[10];
			StringTokenizer st = new StringTokenizer(s, " "); 

			while(st.hasMoreTokens()){
				s1 = st.nextToken();
				primer[x++]=s1;
			}

			
			for(int i=0; i<=primer.length; i++){
				pr=primer[i];                                                                       // java.lang.NullPointerException
				if (pr.equals("+")){
					end=Integer.parseInt(primer[i-1]) + Integer.parseInt(primer[i+1]);
					primer[i-1]=Integer.toString(end);
					System.arraycopy(primer,0,primer2,0,i);
					System.arraycopy(primer,i+2,primer2,i,primer.length-i-2);
					primer=null;
					primer=primer2;
					primer2=null;
				};
			}
			for(int i=0; i<10; i++){
			System.out.println(primer2[i]);
			}
		}
		
	}
Должно выдать "20" и 9 null'ов.

Последний раз редактировалось gostix; 02.11.2012 в 04:38.
gostix вне форума Ответить с цитированием
Старый 02.11.2012, 04:36   #2
gostix
 
Регистрация: 18.10.2010
Сообщений: 3
По умолчанию

Нашел в чем проблема.
gostix вне форума Ответить с цитированием
Старый 22.11.2012, 03:10   #3
Arazei
Пользователь
 
Аватар для Arazei
 
Регистрация: 16.08.2011
Сообщений: 24
По умолчанию

for(int i=0; i<=primer.length; i++)

Ошибка кажись здесь. Должно быть
for(int i=0; i<primer.length; i++) длина это количество а счет идет с нуля.Соответственно Если длина 5, то счет будит (0,1,2,3,4), а (...5) будит равнятся нулл.
Но не уверен, не вдумывался позно уж.
Arazei вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СИ, массивы, найдите ошибку... Immoralist Помощь студентам 1 29.04.2012 18:29
Найти ошибку в задаче на массивы Катакомба Помощь студентам 9 14.10.2011 13:04
Исправте ошибку в коде. Паскаль. Двумерные массивы. anna_ Помощь студентам 7 18.12.2009 14:09
Найти ошибку в коде. (С, массивы) pomoshnic Помощь студентам 2 08.07.2009 03:48
Не вижу ошибку...помогите. 1 курс задача на Си good_andy Помощь студентам 6 02.01.2008 10:01