`
cywhoyi
  • 浏览: 413401 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java用stack计算字符串

    博客分类:
  • JAVA
 
阅读更多
package thread.stack.calculator;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;

public class Run_clsStack
{
    public static void main(String[] args)
        throws Exception
    {
        // File file = new File("f:\\emps.java");
        // BufferedReader buffer = new BufferedReader(new FileReader(file));
        // while (buffer.ready())
        // {
        // String line = buffer.readLine();
        // System.out.println(line);
        // }
        String[] cStrings = new String[20];
        Hashtable<String, Integer> ht = new Hashtable<String, Integer>();
        for (int i = 0; i < 100; i++)
        {
            if (i < 100)
            {
                Count cls = new Count();
                Input_ detail = new Input_();
                clsStack_ cls1 = new clsStack_();
                String str = detail.InputString_();
                String var = str.split("=")[0].split(" ")[1];
                String value1 = str.split("=")[1];
                String value = value1.split(";")[0];
                System.out.println("Value:" + value);
                // 取代字母给予值
                // Set<String> htt = (Set<String>)ht.keySet();
                // System.out.println("size =====================> " + htt.size());
                // for (Iterator iterator = htt.iterator(); iterator.hasNext();)
                // {
                // String key = (String)iterator.next();
                // value = value.replace(key, ht.get(key) + "");
                // }
                cStrings = value.split("\\/|\\*|\\+|\\-");
                for (int j = 0; j < cStrings.length; j++)
                {
                    if (ht.get(cStrings[j]) != null)
                    {
                        value = value.replace(cStrings[j], ht.get(cStrings[j]) + "");
                    }
                }
                // 通过计算得值
                double db = cls1.getValue(value);
                int c = (int)db;
                ht.put(var, c);
                System.out.println("值:" + db);
                System.out.println("---------------------------------");
            }
            else
            {
                break;
            }
        }
    }
}
分享到:
评论

相关推荐

    用java写的使用堆栈对表达式的计算

    这是使用java写的对于一个数学表达式字符串的分析与求解,使用的是int类型,对各种正确的输入都能有正确的输出,使用了stack来解决,希望能对大家有所帮助

    Java小假期第一次作业

    请百度百科查询base64编码,实现将二进制字节数据编码转换为base64的字符串数据,以及 将base64字符串转换回二进制字节数据。禁止使用JDK自带的Base64转换程序以及Apache开源网站上的程序, 必须自己编写代码来...

    java 课程 实验

    2. 使用两个Stack类(JDK容器类库中的Stack类)实现一个队列类MyQueue,提供队列的入队列和出队列操作:enQueue和deQueue。 3. 写一个彩票程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘...

    java 面试题 总结

    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变...

    大工软院大二姜国海小学期-第一次作业要求.zip

    请百度百科查询base64编码,实现将二进制字节数据编码转换为base64的字符串数据,以及 将base64字符串转换回二进制字节数据。禁止使用JDK自带的Base64转换程序以及Apache开源网站上的程序, 必须自己编写代码来...

    stack-Calculator:使用堆栈推入和弹出方法进行计算

    如果它是数字或运算符,它将读取该字符串并求值。 这应该始终是一项操作。 如果是数字,它将给出一个错误。 找到运算符后,它将查找两个第一个数字。 一旦找到操作,将使用找到的运算符和编号执行操作。 该数字的...

    达内 coreJava 习题答案

    //此处用 continue也可以,只是效率低一点 System.out.print(" "+k+"X"+j+"="+j*k); } System.out.println(); } } } 6、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,...

    automata:Java 中的下推自动机和 ForkJoin 的并行计算

    Code Puzzle 中特殊括号的字符串匹配器。 === 匹配算法 首先,我使用正则表达式和 if else 来制作这个应用程序,但它不是很漂亮。 并且我认为正则表达式是一种有限状态机(FSA) ,但是FSA不能满足拼图需求。后来我...

    java课程实验

    3) 为Teacher类添加方法toString,通过该方法可以返回“编号为**、姓名为**、年龄为**的**学院老师”形式的字符串。 4) 构造main方法进行测试。 4、设计一个带表头的单链表(链表中的元素属于同一类型对象,但对象的...

    超级有影响力霸气的Java面试题大全文档

     JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要...

    javalruleetcode-LeetCode:LeetCode问题解决方案

    创建一个字符串数组,每个字符串将代表将出现在每一行的字符。 最后合并每一行的所有字符 计算两个高度之间体积的两个指针方法 使用堆栈来跟踪左括号和右括号 继续使用给定的序列构建下一个序列,依此类推,使用递归...

    leetcode切割分组-algorithm-java:Java实现的算法

    leetcode切割分组 The algorithms implemented in Java Project Description ...给定一个由字符串组成的数组,必须把所有的字符串拼接起来, 返回所有可能的拼接结果中,字典序最小的结果 04/13 第14课 会议

    【Java数据结构与算法】栈及经典应用

    注意不是简单的把算是列出运算,因为我们看这个算式722-5,但是计算机怎么理解这个算式的(对计算机而言,它接收到的就是一个字符串),我们讨论的是这个问题。–&gt;栈 栈的介绍 栈的英文为(stack) 栈是一个先入后出...

    Algorithms:Robert Sedgewick和Kevin Wayne合着的《Algorithms》的读书练习项目

    数据结构2.1 栈固定大小字符串栈实现见:collection/FixedCapacityStackOfString.java固定大小泛型栈实现见:collection/FixedCapacityStack.java动态调整大小栈实现见:collection/ResizingArrayStack.java基于链表...

    StringManipulator:根据用户输入更改给定的字符串

    该项目使用堆栈来计算用户消息中的每个字母。 例如,假设用户输入“嘿,我想这是我要发送到该程序的消息!”: 然后,您可以输入特定的说明来操作此消息: 根据命令“ URXZ”,更改消息,以使最终消息如下:

    freemarker总结

    2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可对数值取整,如: ${ (x/2)?int } ${ 1.1?int } ${ 1.999?int } ${ -1.1?int } ...

    KwasiboaASTRUKProjekt2

    夸西波阿ASTRUK项目2 有一个必须使用逆PL表示法的计算器!!! 使用上一课中制作的堆栈。 必须捕获EMPTY STACK异常并在捕获... 每堆栈结果:否则将字符串转换为数字并在堆栈上抛出}捕获异常EMPTY STACK 星期六前至2

    C++大学教程,一本适合初学者的入门教材(part2)

    5.12.2 字符串处理库的字符串操作函数 5.13 有关对象的思考:对象间的交互 小结 术语 自测练习 自测练习答案 练习 特殊小节:建立自己的计算机 更多的指针练习 字符串操作练习 特殊小节:高级字符串操作练习 复杂...

    C++大学教程,一本适合初学者的入门教材(part1)

    5.12.2 字符串处理库的字符串操作函数 5.13 有关对象的思考:对象间的交互 小结 术语 自测练习 自测练习答案 练习 特殊小节:建立自己的计算机 更多的指针练习 字符串操作练习 特殊小节:高级字符串操作练习 复杂...

Global site tag (gtag.js) - Google Analytics