相关疑难解决方法(0)

如何比较Java中的字符串?

==到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals(),并修复了该错误.

==坏?什么时候应该不应该使用它?有什么不同?

java string equality

726
推荐指数
23
解决办法
376万
查看次数

Java中==和equals()之间有什么区别?

我想澄清一下我是否理解正确:

  • == - >是参考比较,即两个对象都指向相同的内存位置
  • .equals() - >计算对象中值的比较

我的理解是正确的吗?

java identity equality object-comparison

592
推荐指数
12
解决办法
62万
查看次数

44
推荐指数
2
解决办法
2万
查看次数

当我们有==运算符时为什么是equals()方法?

当我看到equals()方法的实现时,它什么也没做,只是做了什么==.所以我的问题是,当我们有==运营商做同样的工作时,需要将它作为单独的方法吗?

java equals referenceequals

32
推荐指数
3
解决办法
9233
查看次数

将原语与包装器对象进行比较,其中==行为无法解释

我有一段代码需要我理解:

public static void main(String[] args) {
    Character c = new Character('a');
    Character cy = new Character('a');
    char cx = 'a';

    System.out.println(c == cx);
    System.out.println(cx == cy);
    System.out.println(c == cy);
}
Run Code Online (Sandbox Code Playgroud)

输出:

true
true
false
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么只有第三个陈述失败了.

编辑:这个问题.equals==原始与对象比较的vs 问题不同.

java boxing equality equals

26
推荐指数
2
解决办法
3004
查看次数

`if(x = 0)`是否是Java可编译的

Scott Ambler在他的书" Java编码标准"中说,我很感兴趣,并引用:

2.5.2在比较的左侧放置常数

所以他建议使用

if ( 1 == something ) {…}    
if ( 0 = x ) { …}
Run Code Online (Sandbox Code Playgroud)

代替

if ( something == 1 ) {…}    
if ( x = 0 ) { …}  
Run Code Online (Sandbox Code Playgroud)

我的天啊 !!!

他通过这样说来激励这一点:

"虽然它们都是等价的,至少在第一次检查时,左边的代码编译而右边的代码没有."

我知道(当我开始编写Java时,Java 14已经在使用中),这两种情况都会引发编译器错误.

从Ambler语句开始,我试图搜索Java语法if ( x = 0 );是否可编译.

你能帮我解决这个问题吗?我搜索了不同版本的JSR,我没有发现任何可能表明该代码在其他java版本上进行编译的更改.

我使用目标和源1.2编译Jre7编译器仍然会引发编译器错误.不幸的是我没有Java 1.1编译器:9

我的问题是:

if(x = 0); 是否可与旧版Java编译器兼容?

java convention compilation version conditional-statements

4
推荐指数
2
解决办法
2121
查看次数

字符串常量池机制

谁能解释这种奇怪的行为String

这是我的代码:

String s2 = "hello";
String s4 = "hello"+"hello";
String s6 = "hello"+ s2;

System.out.println("hellohello" == s4);
System.out.println("hellohello" == s6);

System.out.println(s4);
System.out.println(s6);
Run Code Online (Sandbox Code Playgroud)

输出是:

true
false
hellohello
hellohello
Run Code Online (Sandbox Code Playgroud)

java string

4
推荐指数
3
解决办法
311
查看次数

==运算符不比较String的引用

可能重复:
Java中的字符串比较和字符串实习

我理解String equals()方法是如何工作的,但我对String ==运算符的一些结果感到惊讶.

我希望==比较引用,就像它对其他对象一样.

但是,不同的String对象(具有相同的内容)==返回true,甚至对于静态字符串对象(具有相同的内容),这显然不是相同的内存地址.

我猜= =已被定义为与equals相同以防止其被滥用

java

2
推荐指数
2
解决办法
284
查看次数

简单数组:检查值是否匹配

我只是试图查看输入的值是否与数组中已有的值匹配,以及它是否返回"有效".我意识到这很简单,但我不能让它工作:

 public static void main(String[] args) {

        Scanner keyboard = new Scanner(System.in);
        String[] accountNums = { "5658845", "8080152", "1005231", "4520125", "4562555",
                                 "6545231", "7895122", "5552012", "3852085", "8777541", 
                                 "5050552", "7576651", "8451277", "7881200", "1302850", 
                                 "1250255", "4581002" };

        String newAccount;
        String test = "Invalid";

        newAccount = keyboard.next();

        for (int i = 0; i < accountNums.length; i++)
        {        
            if(newAccount == accountNums[i])
            {
                test = "Valid";
            }
        }

        System.out.println(test);
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助(和耐心)

java arrays

2
推荐指数
1
解决办法
4123
查看次数

== null和.equals("null")之间有什么区别吗?

我对以下代码感到困惑.为什么它与两者==equals方法相比?

(validFolderRow.getBondTAFolderType() == null || validFolderRow.getBondTAFolderType().equals("null"))
Run Code Online (Sandbox Code Playgroud)

equals()和==之间有什么区别?

谁能告诉我有什么区别

validFolderRow.getBondTAFolderType() == null
Run Code Online (Sandbox Code Playgroud)

validFolderRow.getBondTAFolderType().equals("null")
Run Code Online (Sandbox Code Playgroud)

java string equals

2
推荐指数
1
解决办法
424
查看次数