Java—为什么可以';我用charAt()来看看一个字符是否等于另一个字符?

Java—为什么可以';我用charAt()来看看一个字符是否等于另一个字符?,java,string,char,equals,Java,String,Char,Equals,我想知道字符串中的字符是否等于某个其他字符值,但我不知道字符串中的字符是什么,因此我使用了以下方法: if ( fieldNames.charAt(4) == "f" ) 但我得到了一个错误: "Operator '==' cannot be applied to 'char', 'jav.lang.String'" 但是“g”==“h”似乎很有效,我知道可以将“==”用于字符类型 有没有其他正确的方法? 谢谢 因为“f”是字符串和字段名。字符(4)是字符。您应该使用'f'检查字符 “g”=

我想知道字符串中的字符是否等于某个其他字符值,但我不知道字符串中的字符是什么,因此我使用了以下方法:

if ( fieldNames.charAt(4) == "f" )
但我得到了一个错误:

"Operator '==' cannot be applied to 'char', 'jav.lang.String'"
但是
“g”==“h”
似乎很有效,我知道可以将
“==”
用于字符类型

有没有其他正确的方法? 谢谢

因为
“f”
字符串
字段名。字符(4)
字符
。您应该使用
'f'
检查字符

“g”==“h”
之所以有效,是因为g和h都是
字符串

您不应该使用
“g”==“h”
您应该使用
“g.equals”(“h”)
。 对于
原语
数据类型,如
字符、int、boolean等,您可以使用==但对于
对象
等字符串,它实际上是不同的。

但你也可以使用

'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)

字符(i).equals('x')将不能一起工作


if(String(fieldNames.charAt(4))==“f”)

.equals(),但您必须记住,字符需要撇号('),而不是引号(“)。例如:someChar.equals('c')对字符有效,someString.equals(“c”)对字符串有效。

是字符串,
'f'
是字符。非常感谢!我从来不知道。
“g”==“h”
编译但不起作用。值得指出的是,您可以将
char
==
进行比较,但无法将
String
@boristeider进行比较是的。我将其添加到了答案中。谢谢@当然对不起。不知道为什么我一开始不接受它!
if (str.substring(0,1).equals("x") )