![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
KrutoiNol |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 11.10.2009 Репутация: нет Всего: нет |
package javaapplication2.braceChecker;
public class BraceChecker { private String inputText; private String ErrorMessage1 = "sxal e pakvac"; private String ErrorMessage2= "chi sksvum pakumov"; private String ErrorMessage3 = "bacel es bayc ches pakel"; private Stack stack ; public BraceChecker(String inputStr) { this.inputText = inputStr; stack = new Stack(inputStr.length()); } public void parse(){ lab:for (int i = 0; i < inputText.length(); i++) { char ch = inputText.charAt(i); switch(ch) { case '[':stack.push('[');break; case '{':stack.push('{');break; case '(':stack.push('(');break; // TODO: push , after which break; case ']':if ((char)stack.pop()!='['){ System.out.println(ErrorMessage1); break lab; } else if (stack.pop()==0) System.out.println(ErrorMessage2); else stack.pop();break; case '}':if ((char)stack.pop()!='{'){ System.out.println(ErrorMessage1); break lab; } else if (stack.pop()==0) System.out.println(ErrorMessage2); else stack.pop();break; case ')':if ((char)stack.pop()!='('){ System.out.println(ErrorMessage1); break lab; } else if (stack.pop()==0) System.out.println(ErrorMessage2); else stack.pop();break; } } if (stack.pop()>0)System.out.println(ErrorMessage3); } } ne rabotayet |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
![]() ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Это грустно или весело ? во-первых: используйте обрамление для кода во-вторых: название темы должно отображать ее суть в-третьих: вопрос конкретный в студию, что не работает ? как должно работать, где ошибки ? в-четвертых: есть центр помощи для таких просьб. |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
В-пятых, на форуме вроде как русский язык принят.
Это сообщение отредактировал(а) Данкинг - 11.10.2009, 14:22 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
revenforv |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 6.8.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
toKrutoiNol:
I think, this doesn't work because after stack.pop() an element is really thrown away of the stack. So you can't do it repeatedly to test if() {} elseif() {} else {} statement. As i've understood this util tests if "braces" are correctly coupled. With minimal changes to your code that would look like the one below. I've added stack implementation and main() method. Your "algorithm" is left as previous. Думаю это не работает, потому что после того, как вы делаете stack.pop() элемент действительно выбрасывается из стека. Поэтому нельзя применять его для проверки одного и того же элемента в конструкции if() {} else if() {} else {}. Программа, как я понял должна проверять правильность расстановки скобок в строке. С минимальными изменениями программу можно переписать так, как представлено ниже. Я добавил реализацию стека и метод main(). Ваш "алгоритм" оставил без изменений.
|
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Модератор: Сначала читаем правила форума, потом создаем темы.
Правила форума: http://forum.vingrad.ru/index.php?act=boardrules |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |