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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Куда записываются сохраненные слова в смс http://www.cyberforum.ru/android-dev/thread700013.html
Добрый день! Вопрос возможно отнесен не к этой группе. Подскажите пожалуйста куда сохраняются все слова которые мы сохраняем при написании сообщения. как их можно увидеть, изменить, удалить. Если можно то опишите подробно куда необходимо пройти. Если важно то HTC Sensation.
Программирование 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) { super.onCreate(savedInstanceState); setContentView(R.layout.oneact); ListView listWO = (ListView) findViewById(R.id.listWO);
Как правильно размещать элементы View на Layout Программирование Android
У меня есть небольшое приложение в виде виджета. На виджете есть ImageView и три TextView. Т.е. на заднем фоне как бы картинка а на ней три строки, сверху и снизу маленький текст, а по середине большой. Все тесты проводил на своем смарте, но у меня стоит лончер Apex и на нем сетку я вяставил как 5х4. Все разместил с использованием Margins, все получилось красиво, но как оказалось на смартах со...
Программирование 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')))
цифры вроде стал читать)) осталось разобраться, как он их считать умеет...))
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru