Java中字符串的==和equals方法。力扣150题。逆波兰表达式求值。
创始人
2024-11-14 21:33:51
0

今天在刷力扣第150题目的时候。使用到了字符串内容的比较。

在IDEA中我编写的代码是这样的。

public static int evalRPN(String[] tokens) {         Deque dq=new ArrayDeque<>();         int len=tokens.length;         for(int i=0;i

字符串比较的时候使用的是“==”运算符,结果运行通过,测验也能得到正确的结果

#输入 tokens=["2","1","+","3","*"] #输出 9

但是我将它复制到力扣中去,编译就不通过了。报以下的错误。

java.lang.NumberFormatException: For input string: "*"   at line 67, java.base/java.lang.NumberFormatException.forInputString   at line 647, java.base/java.lang.Integer.parseInt   at line 777, java.base/java.lang.Integer.parseInt   at line 20, Solution.evalRPN   at line 56, __DriverSolution__.__helper__   at line 86, __Driver__.main

可以看到错误是,最后将尝试将“*”转换成int类型而报错,这就证明栈顶的元素是“*”,整个栈只进行了入栈操作,而并没有出栈。

通过了解,我得知,在Java中,String的“==”运算符是用来比较两个对象的引用是否相等(对于其他引用对象类型也一样)。而如果要比较两个String的值是否相同,要使用equals方法。

于是我将代码修改成

public int evalRPN(String[] tokens) {         Deque dq=new ArrayDeque<>();         int len=tokens.length;         for(int i=0;i

这就成功通过运行了。

至于为什么使用“==”在idea中也能实现比较字符串内容的原因,大概是因为idea内置了优化把,自动将它识别成了equals?

相关内容

热门资讯

揭幕透视!wepoker智能辅... 揭幕透视!wepoker智能辅助插件,微乐锄大地脚本,教材教程(存在有挂)-哔哩哔哩wepoker智...
备受关注的!德州私人局怎么透视... 备受关注的!德州私人局怎么透视,大菠萝免费辅助,演示教程(真实有挂)-哔哩哔哩1)德州私人局怎么透视...
据报道!哥哥打大a辅助神器,优... 据报道!哥哥打大a辅助神器,优乐江西辅助器,技法教程(了解有挂)-哔哩哔哩1、哥哥打大a辅助神器破解...
有挂透视!wepoker免费脚... 有挂透视!wepoker免费脚本咨询,微乐挖坑内购破解,指引教程(有挂解惑)-哔哩哔哩1、下载好we...
透视最新!德州私人局怎么透视,... 透视最新!德州私人局怎么透视,兴动互娱辅助设置步骤详解,机巧教程(有挂教学)-哔哩哔哩1、这是跨平台...
反观!上品五十k辅助,四川家园... 反观!上品五十k辅助,四川家园辅助软件,妙计教程(有挂详细)-哔哩哔哩1、每一步都需要思考,不同水平...
详情透视!wepoker黑侠破... 详情透视!wepoker黑侠破解,微乐智能辅助app,指南教程(有挂详情)-哔哩哔哩1.wepoke...
针对!柳州天天爱字牌辅助器,青... 针对!柳州天天爱字牌辅助器,青橙竞技游戏辅助,方案教程(有挂透明挂)-哔哩哔哩1、许多玩家不知道柳州...
突发!拱趴大菠萝机器人,熟客温... 突发!拱趴大菠萝机器人,熟客温州游戏辅助器,模板教程(有挂神器)-哔哩哔哩1、熟客温州游戏辅助器脚本...
科普透视!wpk作弊,微信小程... 科普透视!wpk作弊,微信小程序透视微乐,法子教程(有挂教程)-哔哩哔哩亲,关键说明,wpk作弊透视...