Java 为什么在Eclipse中用两组双引号显示字符串

Java 为什么在Eclipse中用两组双引号显示字符串,java,eclipse,string,double-quotes,Java,Eclipse,String,Double Quotes,这个问题快把我逼疯了!我在constants类中声明了一个静态字符串,如下所示: public static final String REGISTRATION_USERNAME_TAKEN = "Username is already in use. Please choose a different name."; 调用RESTfulWeb服务注册用户后,将捕获响应(在调试期间)并与常量进行比较。响应也出现在双引号中(不确定原因),结果.equals()失败,即使结果和常量看起来完全相同。

这个问题快把我逼疯了!我在constants类中声明了一个静态字符串,如下所示:

public static final String REGISTRATION_USERNAME_TAKEN = "Username is already in use. Please choose a different name.";
调用RESTfulWeb服务注册用户后,将捕获响应(在调试期间)并与常量进行比较。响应也出现在双引号中(不确定原因),结果.equals()失败,即使结果和常量看起来完全相同。下面是在Eclipse中调试期间的屏幕截图,其中显示了双引号。字符计数61包括一组双引号

以前有人在Eclipse中见过这个吗? 另外,当两个字符串具有相同的值时,.equals()为什么会失败(我的意思是两个字符串在相同的序列中包含相同的字符)

关于.equals()方法在将字符串与枚举常量进行比较时失败的问题,实际上,如果您没有重写枚举类中的toString()方法,这是默认行为

例如:

因此,如果要将字符串与枚举可能具有的确切字符串值进行比较,可以向枚举中添加一个私有字段,该字段将保存在构造函数中定义并通过重写枚举中的toString()返回的相应字符串值,也可以强制使用toString()只要这样做:

if(result.equals((MyEnum.LOL).toString())
//same code as before would print true

看起来空格是不同的。找一个比较类,或者自己编写一个比较类,一个一个地比较一个字符,并告诉您差异。我有一个类似的“问题”。即使我的比较返回true,Eclipse还是会用额外的双引号显示字符串,这让人困惑。即使是在调试器中展开“value”项时显示的数组也会显示第一个和最后一个项的引号(例如,
[0]=“
)。这肯定是Eclipse错误吗?有什么想法吗?将字符串转换为字符串毫无意义。但是我测试了“.toString()”,它不起作用。
if(result.equals((MyEnum.LOL).toString())
//same code as before would print true