Java – 为什么我不能使用charAt()来查看char是否等于另一个?

我想看看我的字符串中的字符是否等于某个其他字符值,但我不知道字符串中的字符是什么,所以我使用了这个:

if ( fieldNames.charAt(4) == "f" ) 

但我得到错误:

 "Operator '==' cannot be applied to 'char', 'jav.lang.String'" 

但是"g" == "h"似乎有效,我知道你可以使用'=='和char类型。

有没有其他方法正确地做到这一点? 谢谢!

 if ( fieldNames.charAt(4) == 'f' ) 

因为"f"是一个StringfieldNames.charAt(4)是一个char 。 你应该使用'f'作为检查字符

"g" == "h"有效,因为g和h都是Strings

你不应该使用"g" == "h"你应该使用"g".equals("h")代替。 您可以使用==作为primitive数据类型,如char,int,boolean ….等。但对于像String这样的objects它确实是不同的。 要知道为什么读这个

但你也可以使用

 'g' == 'h' 

你应该用双引号包装字符串,用单引号括起字符串

 String s="g"; char c='g'; 

但char只能有一个字符但String可以有多个字符

 String s="gg"; valid char c='gg'; not valid 

我有同样的问题,但我能够使用以下方法解决它:

 if (str.substring(0,1).equals("x") ) 

子串可以在循环str.substring(i,i + 1)中使用

charAt(i).equals(’x’)不会一起工作