私はJavaに非常に慣れていないので、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. )の2種類があります。それに対応して、変数に格納でき、引数として渡され、メソッドによって返され、操作できる2種類のデータ値:プリミティブ値( §4.2 )と参照値( § 4. )。
比較したい場合
1-two integer
If(5==5)
2- char
If('m'=='M')
3 string
String Word="Word"
Word.equals("Word")
Intはプリミティブなので、equalsは使用できません。 Integerをラッパーとして使用する方法
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などのより多くの操作を実行できます。
==整数の場合will not work the rang above -128 and 127
。整数は、メモリ内でのみこの範囲までのキャッシュ値を保持します。この範囲を超えると、整数ラッパークラスをチェックする場合にのみ、equals()メソッドを使用する必要があります。
equals()メソッドは、参照場所に保存されている値をチェックします。