Java语言中的字符串比较

Java语言中的字符串比较,java,string,compare,Java,String,Compare,嗨,我的代码有一个奇怪的问题,我不知道出了什么问题 我有: ArrayList称之为玩家 类别:运动员 类别:名称 Player类包含Name类,Name类包含3个字符串FirstName MiddleName LastName 问题是当我试着去做的时候 For( int i = 0; i < players.size(); i++) { if( players.get(i).getName().getFirst() == "First1") { // S

嗨,我的代码有一个奇怪的问题,我不知道出了什么问题

我有:

ArrayList称之为玩家

类别:运动员

类别:名称

Player类包含Name类,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());
}
它返回:

第一个1第一个2第一个3

getName()方法返回对象名,getFirst()返回字符串FirstName


知道问题出在哪里吗?

永远不要将字符串与==进行比较。改为使用.equals()。
“==”比较字符串的引用。equals()比较实际值。

要比较java中的字符串对象,请使用
.equals()
方法而不是
“==”
运算符。如果要忽略大小写,请使用
.equalsIgnoreCase()
方法

对于字符串比较,应该这样使用

if( "First1".equals(players.get(i).getName().getFirst()))

有关字符串比较的详细信息,请参阅[链接][1]。[1] :==比较它们是否是完全相同的对象,
.equals()
测试它们是否“看起来相同”@maheshrpm-only minimarkdown在注释中起作用。形式为
[参见此处示例](www.example.com)
if( "First1".equals(players.get(i).getName().getFirst()))