嗨我的代码有一个奇怪的问题,我无法弄清楚什么是错的。
我有:
ArrayList称为玩家
类:播放器
班级:姓名
Player类包含Name类,其中包含3个字符串FirstName MiddleName LastName
问题在于我试图做什么
For( int i = 0; i < players.size(); i++)
{
if( players.get(i).getName().getFirst() == "First1")
{
// Some Code
}
System.out.printf(players.get(i).getName().getFirst());
}
如果陈述永远不是真的,那么奇怪的是当我使用system.out进行检查时如下
System.out.printf(players.get(i).getName().getFirst());
它返回:
First1 First2 First3
getName()方法返回对象名称,getFirst()返回String FirstName
问题出在哪里?
答案 0 :(得分:4)
永远不要将字符串与==进行比较。请改用.equals()。 “==”比较字符串的引用。 .equals()比较实际值。
答案 1 :(得分:3)
要比较java中的String对象,请使用.equals()
方法而不是"=="
运算符。如果您想忽略该案例,请使用.equalsIgnoreCase()
方法。
对于字符串比较,您应该像这样使用
if( "First1".equals(players.get(i).getName().getFirst()))