`
cywhoyi
  • 浏览: 421142 次
  • 性别: 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编程中,将字符串表示的计算公式转化为可执行的表达式并计算其结果是一项常见的需求。这通常涉及到解析字符串,构建表达式树,然后进行求值。在本篇文章中,我们将深入探讨如何实现这个功能。 首先,我们需要...

    Stack3 java.rar_Stack3 java_palindrome

    标题中的"Stack3 java.rar_Stack3 java_palindrome"表明这是一个关于使用Java编程语言实现堆栈(Stack)数据结构,并且应用在判断回文(Palindrome)字符串上的项目。回文是指正读反读都能读通的字符串,如“level”...

    使用java处理字符串公式运算的方法

    在Java编程中,处理字符串公式运算是一项常见的任务,特别是在需要动态计算或自定义逻辑的场景。本篇文章将探讨如何在Java中实现这个功能,主要利用后缀表达式(也称为逆波兰表示法)来解决这个问题。 首先,我们...

    java实现字符串四则运算公式解析工具类的方法

    今天小编将为大家分享java实现字符串四则运算公式解析工具类的方法,这个工具类能够帮助用户快速解析和计算字符串形式的四则运算公式。这个工具类被命名为FormulaCalculator.java,位于org.nercita.bcp.record.util...

    计算器(字符串运算)

    解析并计算这样的字符串表达式需要理解运算符优先级和括号的使用。以下是对这个过程的详细解释: 1. **运算符优先级**:在数学和编程中,运算符有不同的优先级。例如,乘法和除法的优先级高于加法和减法。在给定的...

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

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

    java c++表达式求值(带括号和小数点)

    同样,遍历输入字符串,根据字符类型决定是否压栈或执行计算。 8. **求值过程** 当所有字符都被处理后,栈中应只剩下一个元素,即表达式的值。将其弹出并返回即可。 通过上述步骤,我们可以实现一个能够处理带有...

    字符串表达式解析求值算法

    在编程领域,字符串表达式解析求值算法是一种关键的技术,尤其在计算器应用、脚本语言或者自定义计算逻辑实现中非常常见。这个算法的核心任务是将由字符组成的字符串转换为可执行的数学表达式,同时处理变量和各种...

    统计字符串LE出现的次数

    为了在汇编中处理字符串,我们通常会用到数据段(Data Segment)来存储字符串,代码段(Code Segment)来存放执行代码,而堆栈段(Stack Segment)用于临时存储数据和返回地址。 以下是一个基于x86汇编语言的简要...

    java-leetcode面试题解Stack之第1111题有效括号的嵌套深度-题解.zip

    总结,Java LeetCode面试题解Stack之第1111题有效括号的嵌套深度,不仅考察了基础的数据结构——栈的运用,还涉及到字符串处理、括号匹配、递归和动态规划等算法知识。理解并能灵活运用这些知识对于提升编程能力和...

    用栈计算表达式(Java版)

    在编程领域,尤其是在处理计算表达式时,栈(Stack)是一种非常重要的数据结构。栈具有“后进先出”(LIFO,Last In First Out)的特性,这使得它非常适合用来解决诸如计算数学表达式这样的问题。在这个Java实现的...

    Stack练习 中缀-后缀表达式 -

    此外,还需要一个字符串来构建后缀表达式,以及一个字符数组来存储中缀表达式。 代码实现的关键部分如下: ```java Stack&lt;Character&gt; operatorStack = new Stack(); StringBuilder result = new StringBuilder(); ...

    java 计算器(可连续计算)

    在实现过程中,`Work`类通常会有一个`calculate`方法,它接受一个后缀表达式字符串,然后使用自定义的`Stack`类来处理表达式。`Stack`类需要实现基本的`push`、`pop`和`peek`操作。`TestString.java`中的测试用例...

    10道腾讯的Java面试题答案.zip

    - 解答:Java内存分为堆(Heap)、栈(Stack)、方法区(Method Area)、本地方法栈(Native Method Stack)和程序计数器(Program Counter Register)。堆用于存储对象实例,栈用于存储基本类型和引用,方法区存储...

    java-leetcode面试题解Stack之第150题逆波兰表达式求值-题解.zip

    这段代码中,`evalRPN`函数接收一个包含逆波兰表达式元素的数组,`isNumber`函数判断字符串是否为数字,`applyOperation`函数根据运算符进行相应的计算。整个解题过程中,我们使用了栈来存储中间计算结果,保证了...

    java简易计算器(四则运算、三角函数、实现优先级)

    2. 当遇到数字时,将其输出到结果字符串。 3. 当遇到运算符时,与栈顶运算符比较优先级,根据规则决定是否立即输出或压栈。 4. 遇到左括号时,将其压入栈中。 5. 遇到右括号时,将栈顶的运算符依次弹出并输出,直到...

    Stack-Project:编写一个程序,该程序读取由正整数或正十进制数字组成的字符串,并将该数字转换为数字格式。 如果字符串由十进制数字组成,则程序必须使用堆栈将十进制数字转换为数字格式

    通过这个Stack-Project,我们不仅可以锻炼堆栈数据结构的运用能力,还能提升字符串处理、逻辑控制和数值计算等方面的编程技能。完成此项目后,你将更深入地理解堆栈在解决实际问题中的作用,尤其是它在逆序处理数据...

    stack实现进制转换

    5. 当商为0时,从栈中依次弹出余数,形成目标进制的数字字符串。 6. 反转该字符串,得到正确顺序的进制数。 在实际编码中,我们还需要考虑负数的进制转换,因为负数在不同的进制表示中可能会有特殊的符号。对于负数...

    Java利用堆栈实现简单四则运算

    这个`Calculator`类中的`calculate`方法接收一个字符串表达式,通过遍历字符并使用两个堆栈来处理数字和运算符,从而实现四则运算。`hasHigherPriority`方法用于判断运算符的优先级,而`applyOp`方法则执行具体的...

Global site tag (gtag.js) - Google Analytics