问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在as3中,如何将String类的一个算式转换成Number类,并计算出结果。求大虾...

发布网友 发布时间:2022-04-23 02:46

我来回答

4个回答

热心网友 时间:2022-04-23 21:34

自己写的一个类:CalculateClass

 

package {

 public class CalculateClass {

  public function CalculateClass() {

  }

  public static function calculateString(str:String=""):Number {

   if (str=="") {

    return NaN;

   }

   

   return calculateFun(str);

  }

 

  //检测括号

  private static function calculateFun(str:String):Number{

   var index:Number = str.lastIndexOf("(");

   

   if(index==-1){

    return calculateAdd(str);

   }

   

   var new_str:String = str.substr(index+1);

   var end_index:Number = new_str.indexOf(")");

   var child_str:String = new_str.substr(0,end_index);

   str = str.substr(0,index)+calculateFun(child_str)+new_str.substr(end_index+1);

   return calculateFun(str);

  }

 

  //计算加法

  private static function calculateAdd(str:String):Number{

   var add_arr:Array = str.split("+");

   

   var len:Number = add_arr.length;

   var result:Number = 0;

   

   for(var i:Number=0;i<len;i++){

    if(!Number(add_arr[i]) && Number(add_arr[i])!=0){

     add_arr[i] = calculateDes(String(add_arr[i]));

    }

   

    if(i==0){

     result = Number(add_arr[i]);

    }else{

     result += Number(add_arr[i]);

    }

   }

   

   return result;

  }

 

  //计算减法

  private static function calculateDes(str:String):Number{

   var des_arr:Array = str.split("-");

   var d_len:Number = des_arr.length;

   var result:Number = 0;

   for(var i:Number=0;i<d_len;i++){

    if(!Number(des_arr[i]) && Number(des_arr[i])!=0){

     des_arr[i] = calculateMul(String(des_arr[i]));

    }

   

    if(i==0){

     result = Number(des_arr[i]);

    }else{

     result -= Number(des_arr[i]);

    }

   }

   

   return result;

  }

 

  //计算乘法

  private static function calculateMul(str:String):Number{

   var mul_arr:Array = str.split("*");

   var m_len:Number = mul_arr.length;

   var result:Number = 0;

   for(var i:Number=0;i<m_len;i++){

    if(!Number(mul_arr[i]) && Number(mul_arr[i])!=0){

     mul_arr[i] = calculateExc(String(mul_arr[i]));

    }

    if(i==0){

     result = Number(mul_arr[i]);

    }else{

     result *= Number(mul_arr[i]);

    }

   }

   

   return result;

  }

 

  //计算除法

  private static function calculateExc(str:String):Number{

   var exc_arr:Array = str.split("/");

   var result:Number = Number(exc_arr[0]);

   var e_len:Number = exc_arr.length;

         

   for(var i:Number=1;i<e_len;i++){

    result=result/Number(exc_arr[i]);

   }

   

   return result;

  }

 }

}

 

 

 

例子在图片中,获取方法:点击图片,大图显示之后将图片另存为,之后将后辍改成.rar解压出来即可

 

热心网友 时间:2022-04-23 22:52

这个很复杂的,首先你要把这个字符串中的运算符和数字分析出来,然后再还原算式,才能计算出结果,Number(str)这样操作只能是针对单个字符才可以。

热心网友 时间:2022-04-24 00:26

你前面的a是字符串,trace(a)的结果应该是 1+1,trace(b)的话为NaN,要想他等于2的话,那就对a做分析了,如把a按照+来分组,再做计算。

热心网友 时间:2022-04-24 02:18

当一个string转换成Number类型时,如果是都是数值时,直接转换成数值型,如果是其他的则输出NaN(not a number) , 拿你的这个例子来说 ,因为字符串中第二个字符是 '+' ,电脑按规矩办事,不会帮你执行加法的, 所以说是NaN 。多用熟悉几次。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
今年是第几届世界杯啊? 今年是第几届世界杯 还关于奖杯 今年这是第几届世界杯? ...的,但当时心悦会员留的手机号早就不用了,现在也改不了,会有安全问题... 我们的大脑会"停止运作"或者"卡机“吗? ...当时大脑空白几分钟这是为什么?代表什么?我还没谈过恋爱。。_百度知... 大脑当机是什么意思? 中山招商银行在那里有 八字合婚:属鸡和属狗的合财吗 婚配好不好呢 一分钟能干什么作文一分钟能干什么作文范文 C语言如何把一个字符串转换成数字? jquery怎么把字符串转成数字 怎么把字符转换成数字? 怎么把string 类型转换成number类型 oracle中string转number 纯js文件中怎么把string转为number 如何将string转换为number类型 如何将string类型转化成number类型? 全世界鲸鱼的种类和详细简介 关于鲸的资料20字 关于鲸的简单资料 关于鲸的有什么相关的资料 关于鲸的所有信息和资料。 关于鲸得资料,要少一点不要太多,急!!! 关于鲸的资料? 关于鲸的资料,比如鲸的天敌 关于鲸的资料与图片 鲸的资料和图片 关于“鲸”的资料主要简介150字以内 关于鲸鱼的资料和图片 flash 中string类型怎么转number类型? oracle sql字符串转数字问题 sql中如何把字符串转换为数字 jquery怎么把字符串转成数字? 如何将文本字符串转换成可运算的数字 oracle里面怎么字符串转成number javascript 字符串怎么转成数字类型 jquery中字符串(string)类型的数字怎样转换成整数(number)类型?_百度... java中 字符串转数值要怎样做 Oracle怎样把varchar2型转成number型 oracle数据库里面的字符串转成数字类型, 怎么拍出既清晰又有颗粒感的照片? 今日庄园小课堂答案是什么做泡菜用什么盐好 蚂蚁庄园7日内容? 蚂蚁庄园5日内容? 蚂蚁森林庄园小课堂问答题人们常说的美人鱼实际是指哪种海洋动物? 庄园小课堂为了防止伤口留下疤痕我们该怎么做? 蚂蚁庄园18日内容? 蚂蚁庄园20日内容? 蚂蚁庄园11日内容?