Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   плюс (+) String в Number (http://www.flasher.ru/forum/showthread.php?t=198159)

Akopalipsis 21.04.2013 02:21

плюс (+) String в Number
 
здравствуйте ,как можно сделать из строки "+" плюс ,чтобы потом им воспользоватся для сложения чисел?
Код AS3:

//примерно ,что то типа
var str:String = "5 + 5";
//и что нужно сделать для перевода этой строки в Number ?

с цифрами то ,я знаю как...а с остальным беда)

bav 21.04.2013 02:39

Конкретно для этого примера можно сделать так:
Код AS3:

var str:String = "5 + 5";
var arr:Array = str.split("+");
var i1:int = int(arr[0]);
var i2:int = int(arr[1]);
var sum:int = i1 + i2;
trace(sum); // 10

В более общем случае вам придется написать парсер, который будет разбивать строку на части, согласно расположению скобок (если они присутствуют), а затем получившиеся части будут делиться по приоритету операторов (возведение в степень перед умножением, которое, в свою очередь, перед сложением, и т.д.). И после такого разделения будут происходить последовательные вычисления. В общем встроенной функции не существует, попробуйте поискать что-то вроде 'арифметический парсер' или написать самостоятельно. Это увлекательно.

Добавлено через 3 минуты
Вот, кстати, как это можно провернуть через перевод инфиксного выражения в постфиксное.

Akopalipsis 21.04.2013 02:59

bav большое Вам Спасибо за помощь! пока воздержусь от вопросов и комментариев и просто почитаю)
а уже потом если ,что напишу. Спасибо ещё раз!
...я только учусь и решил попробовать калькулятор сделать..и пол дня мучился с регулярными выражениями , потом читал ,читал и ещё раз читал... и мне как только что ступившему на путь as странно ,что нет строкового аналога арифметических символов.

Tails 21.04.2013 04:45

Цитата:

Сообщение от Akopalipsis (Сообщение 1130654)
bav большое Вам Спасибо за помощь! пока воздержусь от вопросов и комментариев и просто почитаю)
а уже потом если ,что напишу. Спасибо ещё раз!
...я только учусь и решил попробовать калькулятор сделать..и пол дня мучился с регулярными выражениями , потом читал ,читал и ещё раз читал... и мне как только что ступившему на путь as странно ,что нет строкового аналога арифметических символов.

"5" - строка
5 - цифра

"5" + "5" = "55" - сложение строк
5 + 5 = 10 - сложение цифр

КорДум 21.04.2013 12:13

Судя по всему топикстартер искал eval. Да, в AS3 его нет.

chamele0n 21.04.2013 12:43

зато в javascript есть, что мешает его использовать ?

bav 21.04.2013 14:24

Цитата:

зато в javascript есть, что мешает его использовать ?
Например отсутствие возможности использовать JavaScript. Ваш кэп. Лучше ведь реализовать это дело на чистом AS3 и потом использовать направо и налево.

chamele0n 21.04.2013 14:35

Цитата:

Сообщение от bav (Сообщение 1130684)
Например отсутствие возможности использовать JavaScript.

это бывате максимум в 5% случаев, да и зачем тратить кучу ненужного времени для написания парсера

Psycho Tiger 21.04.2013 18:27

Цитата:

Сообщение от chamele0n (Сообщение 1130685)
это бывате максимум в 5% случаев, да и зачем тратить кучу ненужного времени для написания парсера

Интересная статистика. Поделитесь, как собирали?

chamele0n 21.04.2013 18:33

из собственного опыта


Часовой пояс GMT +4, время: 12:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.