我非常非常熟悉Java,我想知道如何比较2个整数?我知道==完成工作......但是等于什么?这可以比较2个整数吗? (当我说整数时,我的意思是" int" not" Integer")。 我的代码是:
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不能被解除引用"为什么呢?
答案 0 :(得分:15)
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. The Kinds of Types and Values说(部分)
Java编程语言中有两种类型:基本类型(§4.2)和引用类型(§4.3)。相应地,有两种数据值可以存储在变量中,作为参数传递,由方法返回,并在以下操作:原始值(§4.2)和参考值(§4.3)。
答案 1 :(得分:2)
如果你想比较
1-two integer
If(5==5)
2- char
If('m'=='M')
3 string
String word="word"
word.equals("word")
答案 2 :(得分:1)
因为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");
}
答案 3 :(得分:0)
int是原始类型,它本身具有值,但是Integer是对象,并且内部具有原始int类型来保存值。 通过使用包装整数,您可以执行更多操作,例如compare,longValue,.. more。
==对于整数will not work the rang above -128 and 127
。整数保持高速缓存值只能在内存中达到此范围。超过此范围,您仅需要equals()方法来检查Integer包装器类。
equals()方法将检查存储在参考位置中的值。