逆波兰(后缀)计算器,可处理小数,括号

 注意点:

1.String :

(1)split()方法:

空字符串分割 split("") 将字符串分割为一个一个并放入String[ ]数组中

非空字符串举例:

"2:3:4:5".split(":")        //将返回["2", "3", "4", "5"]

"|a|b|c".split("|") //将返回["", "a", "b", "c"]

"hello".split("", 3)        //数组长度为3,可返回 ["h", "e", "l"]

(2)str=null与str=""

str=null与str=""不同,null没有分配内存空间,在内存中是个空对象;而str=""分配了内存空间且已经是个字符串

(3)equals()与==

使用"=="判断的地址值,判断内容应用equal()方法;
        String str1 = "hello" ;                 // 直接赋值
        String str2 = new String("hello") ;     // 通过new赋值
        String str3 = str2 ;                    // 传递引用
        System.out.println("str1 == str2 --> " + (str1==str2)) ;    // false
        System.out.println("str1 == str3 --> " + (str1==str3)) ;    // false
        System.out.println("str
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逆波兰式也称为后缀表达式,是一种不含括号的数学表达式。其计算顺序与中缀表达式相同,但是可以通过栈来实现计算。 下面是用 C++ 实现逆波兰式的生成和计算的示例代码: ```c++ #include <iostream> #include <stack> #include <string> #include <vector> using namespace std; int main() { // 输入逆波兰式 string rpn; cout << "请输入逆波兰式:" << endl; getline(cin, rpn); // 将逆波兰式拆分为操作数和操作符 vector<string> tokens; string token = ""; for (int i = 0; i < rpn.length(); i++) { if (rpn[i] == ' ') { tokens.push_back(token); token = ""; } else { token += rpn[i]; } } tokens.push_back(token); // 计算逆波兰式 stack<int> numStack; for (int i = 0; i < tokens.size(); i++) { string token = tokens[i]; if (token == "+" || token == "-" || token == "*" || token == "/") { int num2 = numStack.top(); numStack.pop(); int num1 = numStack.top(); numStack.pop(); int result; if (token == "+") { result = num1 + num2; } else if (token == "-") { result = num1 - num2; } else if (token == "*") { result = num1 * num2; } else if (token == "/") { result = num1 / num2; } numStack.push(result); } else { int num = stoi(token); numStack.push(num); } } // 输出结果 cout << "计算结果:" << numStack.top() << endl; return 0; } ``` 这个程序首先要求用户输入一个逆波兰式,然后将其拆分为操作数和操作符。接着,程序使用一个栈来计算逆波兰式的值。对于每个操作符,程序将栈顶的两个数弹出,计算后将结果压回栈中。对于每个操作数,程序将其转换为整数并压入栈中。最后,程序输出计算结果。 注意,这个程序没有对输入的逆波兰式进行任何错误检查,如果输入的逆波兰式不符合规范,程序可能会出错。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值