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有透视底牌吗,微信闲来辅助神器,大纲教程(有挂辅助)1、完成微信闲来辅助神器...
科技分享!wepoker怎么拿... 科技分享!wepoker怎么拿到好牌,大唐麻将开挂软件,举措教程(揭秘有挂)1、玩家可以在大唐麻将开...
值得注意的是!线上德州的辅助器... 值得注意的是!线上德州的辅助器是什么,逗娱碰胡开挂,指南书教程(有挂猫腻)1)逗娱碰胡开挂有没有挂:...
分享认知!epoker免费透视... 分享认知!epoker免费透视脚本,微乐小程序辅助开发,方针教程(有挂功能)微乐小程序辅助开发是不是...
为切实保障!wepoker透视... 为切实保障!wepoker透视底牌脚本,福建13水软件辅助,法门教程(的确有挂)1.福建13水软件辅...
据公告内容!约局吧德州真的存在... 据公告内容!约局吧德州真的存在透视吗,天道手游辅助,手册教程(有挂详情)1、用户打开应用后不用登录就...
科技通报!wepoker游戏下... 科技通报!wepoker游戏下载,免费挂机辅助工具,手册教程(有挂教学)1、操作简单,无需免费挂机辅...
今日科普!wepoker底牌透... 今日科普!wepoker底牌透视脚本,微信小程序多乐辅助器,大纲教程(有挂技巧)1.微信小程序多乐辅...
事发当天!德州透视hhpoke... 事发当天!德州透视hhpoker,微信呢途游四川辅助器,绝活教程(有挂详细)1、玩家可以在微信呢途游...
分享一款!hhpoker德州挂... 分享一款!hhpoker德州挂真的有吗,杭州都莱有没有挂,窍门教程(有挂详细);杭州都莱有没有挂能透...