Java &引用;空";执行if语句后出现逻辑错误

Java &引用;空";执行if语句后出现逻辑错误,java,if-statement,null,Java,If Statement,Null,我是一名高中生,目前正在学习计算机科学入门课程。在课堂上,我们被指派创建一个程序,该程序将接受用户输入的卡片符号,并返回卡片的完整描述。例如,输入“AS”的用户将在终端窗口中看到“黑桃王牌”。然而,当我的代码执行时,我得到的是“null of null”,而不是“黑桃王牌”或其他卡片符号 公务舱卡 { } 我的测试人员类别是: 公共类卡片测试器 { } 是什么导致我得到null?您正在使用==比较字符串: rank == "5" 不要。使用: if("5".equals(rank)){ 相反

我是一名高中生,目前正在学习计算机科学入门课程。在课堂上,我们被指派创建一个程序,该程序将接受用户输入的卡片符号,并返回卡片的完整描述。例如,输入“AS”的用户将在终端窗口中看到“黑桃王牌”。然而,当我的代码执行时,我得到的是“null of null”,而不是“黑桃王牌”或其他卡片符号

公务舱卡

{

}

我的测试人员类别是:

公共类卡片测试器

{

}


是什么导致我得到null?

您正在使用
==
比较字符串:

rank == "5"
不要。使用:

if("5".equals(rank)){

相反。顺序(与
if(rank.equals(“5”))相反)
确保如果要比较的字符串曾经是空的,则不会出现空指针异常。

您在Java中犯了一个比较字符串的大罪


查看此问题:

次要挑剔:
rank
永远不会为null,因为
rank=rankAndSuit.substring(0,1);
永远不会返回null(尽管它可能抛出
indexootfboundsexception
)。以这种方式执行比较没有错(我也会这样做),只是在这种情况下,防止空值实际上不是一个问题。谢谢,这是我的错误。具有讽刺意味的是,这也是今天课程的主题!@Mac假设OP在以后的研究中从不在字符串可能为空的更复杂的环境中使用字符串比较。我更愿意以适当的方式回答正如我所说的,我对这项技术一般来说没有问题,我完全支持将其传授给OP。我同意他们可能会发现这项技术在以后的工作中很有用。我只是想指出,“如果
rank
本身为空,则确保没有空指针异常。”是冗余的-
rank
永远不能为空。我知道你在那里做了什么:DDon你从来没有。。。。。。。
rank == "5"
if("5".equals(rank)){