| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1643 人关注过本帖
标题:如何将字符串转成代数表达式?
只看楼主 加入收藏
横竖撇捺
Rank: 1
等 级:新手上路
帖 子:47
专家分:7
注 册:2009-3-14
结帖率:80%
收藏
已结贴  问题点数:0 回复次数:8 
如何将字符串转成代数表达式?
任意输入一段只有加减号和数字的字符串,再将其转成代数表达式并计算出结果!
如:输字符串入“4+3-5+6”得到:4+3-5+6=8
搜索更多相关主题的帖子: 表达 字符 代数 
2009-11-17 21:15
横山居石
Rank: 2
等 级:论坛游民
帖 子:36
专家分:13
注 册:2009-6-22
收藏
得分:0 
我也想知道
2009-11-18 04:42
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:10 
先用正则表达式分解字符串,再用parseInt(str)或parseFloat(str)转成数字

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-11-18 08:45
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
用Python语言比较简单些,直接用eval(str)函数
>>>str="4+3-5+6"
>>>n=eval(str)
>>>print n
10

用JAVA也可以解決,不过比较麻烦些

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-11-18 08:57
d7d7
Rank: 4
等 级:业余侠客
帖 子:91
专家分:210
注 册:2008-9-29
收藏
得分:0 
Python这种语言版主也会,太强了.听说前景不错哦.
2009-11-18 10:08
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用d7d7在2009-11-18 10:08:34的发言:

Python这种语言版主也会,太强了.听说前景不错哦.
学习Python有很多好处,因为Pyhon可以用Java的库(Jython),但Java不能用Python的库

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-11-18 11:10
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:10 
jdk1.6可以很容易做到

ScriptEngineManager factory = new ScriptEngineManager();  
    ScriptEngine engine = factory.getEngineByName("JavaScript");

也是有eval方法的!

[url=http://shop63425653./]/cvbnm/a6/1d/f4/7dd1720119cf3b1dcfb570b467b24051.jpg" border="0" />[/url]
2009-11-18 14:37
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用freish在2009-11-18 14:37:16的发言:

jdk1.6可以很容易做到
 
ScriptEngineManager factory = new ScriptEngineManager();   
    ScriptEngine engine = factory.getEngineByName("JavaScript");  
 
也是有eval方法的!
谢谢,试了一下,这个方法可以运行!

import javax.script.*;

public class TestEval {
    public static void main(String[] args) throws Exception{
        ScriptEngineManager factory = new ScriptEngineManager();  
    ScriptEngine engine = factory.getEngineByName("JavaScript");

        String str = "4+3-5+6";
        System.out.println(engine.eval(str));
    }
}

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-11-18 15:52
疯狂小子
Rank: 1
等 级:新手上路
帖 子:51
专家分:2
注 册:2009-6-8
收藏
得分:0 
楼上的 为什么不给个注释 我有点看不懂  我以前也写过类似的题目   不过我用的C 也就是用Stack来实现的  不过要判断 运算的优先级别
2010-02-09 20:20
快速回复:如何将字符串转成代数表达式?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012361 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved