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

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

Восстановить пароль Регистрация
Другие темы раздела
Android Андроид для ПК http://www.cyberforum.ru/android-dev/thread700015.html
Добрый день! Дайте ссылку на ОС для пк на Андроиде. Желательно русскоязычную. И если можно то как ее устанавливать если уже стоит 7.
Android Как попасть в upload Добрый день,как попасть в upload(прошивка) на адроиде? заранее спасибо http://www.cyberforum.ru/android-dev/thread699912.html
Android RAZR XT-910 сквозное подключение интернета (через usb)
Здравствуйте. Такая проблема. Америкосы свято верят, что смартфон нужно использовать как usb (wi-fi, bluetooth) - модем для компа, а вот наоборот нафиг надо. Я это к тому, что на Motorola android не позволяет нормально создать сквозное подключение, как на HTC, например. Нашел такой выход: reverseTethering. Интернет на сторонних приложениях таким способом работает, например, в chrome. А вот...
Android Андроид на нетбуке асус ееерс1001. Как повернуть экран на 180 град.?
Доброго времени суток! По необходимости установил на нетбук асус ееерс1001 андроид. теперь необходимо повернуть экран на 180 град. Подскажите как это сделать? Заранее благодарен
Android ОС Андроид http://www.cyberforum.ru/android-dev/thread697623.html
Привет всем. Тут такое дело,батарея держит не более 2х дней. Решил посмотреть сколько что кушает ресурсов! Телефону второй месяц пошел. Разве это нормально столько ОС кушает!? + на Nexus 4% за все время накручивает!
Android Проблемы с интернетом [Android 2.3.6] Смарт Samsung GALAXY Ace 2 2 I8160 Включил интернет, захожу либо в агент или в оперу там по сети пошуровать, через какое то время ошибка соединения. смотрю вроде инет включен но сигнала туды сюды нету, пытаюсь вырубить обратно инет, значок так и остается по любому. Пере запускаю смарт, включаю Инет, и все работает. Но потом снова все по новой. подробнее

Показать сообщение отдельно
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 977
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')))
цифры вроде стал читать)) осталось разобраться, как он их считать умеет...))
 
Текущее время: 05:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru