Java语言中的字符串比较
嗨,我的代码有一个奇怪的问题,我不知道出了什么问题 我有: ArrayList称之为玩家 类别:运动员 类别:名称 Player类包含Name类,Name类包含3个字符串FirstName MiddleName LastName 问题是当我试着去做的时候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
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()))