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

May*_*ron 4 java string equals char

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

if ( fieldNames.charAt(4) == "f" )
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

"Operator '==' cannot be applied to 'char', 'jav.lang.String'"
Run Code Online (Sandbox Code Playgroud)

"g" == "h"似乎工作,我知道你可以使用'=='char类型.

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

Mad*_*tha 17

if ( fieldNames.charAt(4) == 'f' )
Run Code Online (Sandbox Code Playgroud)

因为"f"是一个String而且fieldNames.charAt(4)是一个char.你应该使用'f'check char

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

并且你不应该使用 "g" == "h"你应该使用"g".equals("h").你可以使用==的primitive数据类型,如char,int,boolean.... objects等.但对于类似的字符串它真的不同. 要知道为什么读这个

但你也可以使用

'g' == 'h' 
Run Code Online (Sandbox Code Playgroud)

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

String s="g";

char c='g';
Run Code Online (Sandbox Code Playgroud)

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

String s="gg";  valid

char c='gg';  not valid
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢!我从来不知道. (2认同)
  • “” g“ ==” h“`_编译,但不_工作_。值得指出的是,您可以将`char`与`==`进行比较,但不能将`String`进行比较。 (2认同)