繁体   English   中英

Java将2个整数与equals或==进行比较?

[英]Java Compare 2 integers with equals or ==?

我是非常非常新的Java,我想知道如何比较2个整数? 我知道==完成工作......但是等于什么? 这可以比较2个整数吗? (当我说整数时,我的意思是“int”而非“整数”)。 我的代码是:

import java.lang.*;
import java.util.Scanner;
//i read 2 integers the first_int and second_int
//Code above
if(first_int.equals(second_int)){
//do smth
}
//Other Code

但由于某种原因,这不起作用..我的意思是Netbeans给了我一个错误:“int不能被解除引用”为什么?

int是一个原语。 您可以使用包装器Integer类的

Integer first_int = 1;
Integer second_int = 1;
if(first_int.equals(second_int)){ // <-- Integer is a wrapper.

或者您可以按值进行比较(因为它是基本类型)

int first_int = 1;
int second_int = 1;
if(first_int == second_int){ // <-- int is a primitive.

JLS-4.1。 类型和价值的种类说(部分)

有两种类型的Java编程语言:基本类型( 4.2节 )和引用类型( 第4.3节 )。 相应地,有两种数据值可以存储在变量中,作为参数传递,由方法返回,并对其进行操作:原始值( §4.2 )和参考值( §4.3 )。

如果你想比较

1-two integer 
If(5==5)
2- char
If('m'=='M')
3 string
String word="word"
word.equals("word")

因为int是原始的,所以你不能使用equals。 你能做什么用Interger作为包装器

 void IntEquals(Integer original, Integer reverse) {
        Integer origianlNumber = original;
        Integer reverseNumber = reverse;

        if (origianlNumber.equals(reverse)) {
            System.out.println("Equals ");
        } else {
            System.out.println("Not Equal");
        }

int是原始类型。这本身具有值但是Integer是对象,并且内部具有原始int类型来保存值。 您可以使用wrapper Integer执行更多操作,例如compare,longValue,.. more。

== for Integer will not work the rang above -128 and 127 整数仅在内存中将缓存值保持在此范围内。 超过此范围,您必须使用equals()方法来检查Integer包装类。

equals()方法将检查存储在引用位置的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM