Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как суммировать значения строки? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Куда записываются сохраненные слова в смс http://www.cyberforum.ru/android-dev/thread700013.html
Добрый день! Вопрос возможно отнесен не к этой группе. Подскажите пожалуйста куда сохраняются все слова которые мы сохраняем при написании сообщения. как их можно увидеть, изменить, удалить. Если...
Программирование Android bluestacks app player Установил эмулятор bluestacks app player, летает по сравнению со стандартным, но разрешение экрана под планшеты, а в настройках только default и planshet, никак нельзя другие разрешения выбирать? http://www.cyberforum.ru/android-dev/thread699782.html
Программирование Android Передать данные из базы в ListView
public class OneAct extends Activity { Integer text; String names = { "То что было выгруженно с базы" }; protected void onCreate(Bundle savedInstanceState) { ...
Как правильно размещать элементы View на Layout Программирование Android
У меня есть небольшое приложение в виде виджета. На виджете есть ImageView и три TextView. Т.е. на заднем фоне как бы картинка а на ней три строки, сверху и снизу маленький текст, а по середине...
Программирование Android Работа с файлами на эмуляторе http://www.cyberforum.ru/android-dev/thread698791.html
Всем привет. У меня вопрос след. характера. Моя программа читает и создает xml файлы на андроиде. Но проблема в том, что я не знаю как создать файл на эмуляторе, выскакивает ексепшин. А на самомо...
Программирование Android Информация о батарее Возник так вопрос, как можно узнать информацию о батарее например , на что в основном используетсья батарея телефона,время зарядки, сколько можно ещё использовать 2d игры, интернет, фотосъемку... Ни... подробнее

Показать сообщение отдельно
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
18.11.2012, 20:42  [ТС]
Phantom, спасибо)) век живи - век учись... чего только не увидишь))

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

вот код преобразователя:

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
 // Метод перевода в обратную польскую нотацию
    private String inPolishNotation(final String formula)
    {
        String rezNotation = ""; // Результирующая запись
        final Stack stack = new Stack(); // Стек
        final Stack outString = new Stack(); // Стек выходной строки
 
        final int point = 0;
        for (int i = 0; i < formula.length(); i++)
        {
            if (formula.charAt(i) == ')')
            {
                while (String.valueOf(stack.peek()).charAt(0) != '(')
                {
                    outString.push(stack.pop()); // Записываем в выходную
                }
                // строку
                stack.pop(); // Удаляем саму скобку
            }
            if (formula.charAt(i) == '(')
            {
                stack.push('(');
            }
            if ((formula.charAt(i) >= 'A') && (formula.charAt(i) <= 'Z'))
            {
                // stack.push(formula.charAt(i));
                outString.push(formula.charAt(i));
            }
            if ((formula.charAt(i) == '+') || (formula.charAt(i) == '-')
                    || (formula.charAt(i) == '/')
                    || (formula.charAt(i) == '*'))
            {
                if (stack.size() == 0)
                {
                    stack.push(formula.charAt(i));
                }
                else
                    if (prior(formula.charAt(i)) > prior(String.valueOf(
                            stack.peek()).charAt(0)))
                    {
                        stack.push(formula.charAt(i));
                    }
                    else
                    {
                        while ((stack.size() != 0)
                                && (prior(String.valueOf(stack.peek())
                                        .charAt(0)) >= prior(formula
                                        .charAt(i))))
                        { // (OPERS!=NULL)&amp;&amp;(PRIOR(OPERS->c)>=PRIOR(a[k]))
                            outString.push(stack.pop());// outstring[point++]=DEL(&amp;OPERS);
                        }
                        stack.push(formula.charAt(i));
                    }
            }
        }
        for (int i1 = 0; i1 < outString.size(); i1++)
        {
            rezNotation = rezNotation + String.valueOf(outString.get(i1));
        }
        return rezNotation;
    }
 
    // Метод получения приоритета операции при формировании обратной польской
    // нотации
    private int prior(final char a)
    {
        switch (a)
        {
            case '*':
                return 3;
            case '/':
                return 3;
            case '-':
                return 2;
            case '+':
                return 2;
            case '(':
                return 1;
        }
        return 0;
    }
вставил этото метод просто в своем коде, и применил вот так:

Java
1
2
3
4
case R.id.bt_res: 
                String a = tablo.getText().toString();
                tablo.setText(inPolishNotation(a));
                break;
там много кнопок "слушается", поэтому всем кодом не стал мусорить))

проблема в чем... не выводятся цифры и знаки не все выводятся, то есть как то так:

inPolishNotation("А+В*С") выводит АВС
inPolishNotation("2+В*3") выводит В
inPolishNotation("++++") выводит +++
inPolishNotation("1+2*3") выводит пустую строку...

как с этим бороться?))

Добавлено через 8 минут
хм, немного разобрался, поправил строку 24 вот так:

Java
1
if ( ((formula.charAt(i) >= 'A') && (formula.charAt(i) <= 'Z')) || ((formula.charAt(i) >= '0') && (formula.charAt(i) <= '9')))
цифры вроде стал читать)) осталось разобраться, как он их считать умеет...))
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru