logo

JavaのJava.lang.Numberクラス

ほとんどの場合、Java で数値を扱うときに使用します。 プリミティブデータ型 。しかし、Java はさまざまな数値も提供します ラッパー 抽象クラスの下のサブクラス に存在する数 java.lang パッケージ。主にあります これらのサブクラスは、数値を扱うときに頻繁に使用されるいくつかの便利なメソッドを定義します。
 

オブジェクト番号階層' title=


これらのクラスは、プリミティブ データ型を対応するオブジェクトに「ラップ」します。多くの場合、ラッピングはコンパイラによって行われます。オブジェクトが予期される場所でプリミティブを使用すると、コンパイラはそのプリミティブをラッパー クラスにボックス化します。同様に、プリミティブが予期されるときに Number オブジェクトを使用すると、コンパイラーはオブジェクトをボックスから取り出します。これは、オートボックス化およびアンボックス化とも呼ばれます。
なぜプリミティブ データではなく Number クラス オブジェクトを使用するのでしょうか?  
 



  • データ型の上限と下限を提供する MIN_VALUE や MAX_VALUE などの数値クラスによって定義された定数は、非常に役立ちます。
  • Number クラス オブジェクトは、オブジェクトを期待するメソッドの引数として使用できます (数値のコレクションを操作するときによく使用されます)。
  • クラス メソッドは、値を他のプリミティブ型との間で変換したり、文字列との間で変換したり、数値体系 (10 進数、8 進数、16 進数、2 進数) 間の変換に使用できます。


Number のすべてのサブクラスに共通のメソッド:  
 

Java正規表現
    xxx xxxValue(): ここで、xxx はプリミティブ数値データ型 (byte short int long float double) を表します。このメソッドは、次の値を変換するために使用されます。 これ Number オブジェクトを指定されたプリミティブ データ型に変換します。 
     
  Syntax :    byte byteValue() short shortValue() int intValue() long longValue() float floatValue() double doubleValue()   Parameters :    ----   Returns :   the numeric value represented by this object after conversion to specified type


 

Java
//Java program to demonstrate xxxValue() method public class Test {  public static void main(String[] args)   {  // Creating a Double Class object with value '6.9685'  Double d = new Double('6.9685');    // Converting this Double(Number) object to   // different primitive data types  byte b = d.byteValue();   short s = d.shortValue();   int i = d.intValue();   long l = d.longValue();   float f = d.floatValue();   double d1 = d.doubleValue();     System.out.println('value of d after converting it to byte : ' + b);  System.out.println('value of d after converting it to short : ' + s);  System.out.println('value of d after converting it to int : ' + i);  System.out.println('value of d after converting it to long : ' + l);  System.out.println('value of d after converting it to float : ' + f);  System.out.println('value of d after converting it to double : ' + d1);  } } 

出力: 
 

value of d after converting it to byte : 6 value of d after converting it to short : 6 value of d after converting it to int : 6 value of d after converting it to long : 6 value of d after converting it to float : 6.9685 value of d after converting it to double : 6.9685


注記 : 変換中に精度が失われる可能性があります。たとえば、Double オブジェクトから int データ型に変換する際に小数部分 ('.9685') が省略されていることがわかります。 
 

    int CompareTo(NumberSubClass 参照名): この方法は比較に使用されます これ Number オブジェクトを引数に指定します。ただし、2 つの異なる型を比較す​​ることはできないため、メソッドを呼び出す引数と Number オブジェクトの両方が同じ型である必要があります。referenceName は Byte Double Integer Float Long または Short にすることができます。 
     
  Syntax :    public int compareTo( NumberSubClass referenceName )   Parameters :    referenceName - any NumberSubClass type value   Returns :   the value 0 if the Number is equal to the argument. the value 1 if the Number is less than the argument. the value -1 if the Number is greater than the argument.


 

Java
//Java program to demonstrate compareTo() method public class Test {  public static void main(String[] args)   {  // creating an Integer Class object with value '10'  Integer i = new Integer('10');    // comparing value of i  System.out.println(i.compareTo(7));   System.out.println(i.compareTo(11));   System.out.println(i.compareTo(10));   } } 


出力: 
 

1 -1 0


 

    ブール値等しい(オブジェクトobj): このメソッドは、 これ Number オブジェクトは引数と等しいです。 
     
  Syntax :    public boolean equals(Object obj)   Parameters :    obj - any object   Returns :   The method returns true if the argument is not null and is an object of the same type and with the same numeric value otherwise false.


 

Java
//Java program to demonstrate equals() method public class Test {  public static void main(String[] args)  {  // creating a Short Class object with value '15'  Short s = new Short('15');    // creating a Short Class object with value '10'  Short x = 10;    // creating an Integer Class object with value '15'  Integer y = 15;    // creating another Short Class object with value '15'  Short z = 15;    //comparing s with other objects  System.out.println(s.equals(x));  System.out.println(s.equals(y));  System.out.println(s.equals(z));  } } 


出力: 
 

Androidでブロックされた番号を確認する方法
false false true


 

    int parseInt(文字列 sint 基数): このメソッドは、オブジェクトのプリミティブ データ型を取得するために使用されます。 弦 。基数は、10 進数 (10)、8 進数 (8)、または 16 進数 (16) などの表現を出力として返すために使用されます。 
     
  Syntax :    static int parseInt(String s int radix)   Parameters :    s - any String representation of decimal radix - any radix value   Returns :   the integer value represented by the argument in decimal.   Throws :   NumberFormatException : if the string does not contain a parsable integer.


 

Java
//Java program to demonstrate Integer.parseInt() method public class Test {  public static void main(String[] args)  {  // parsing different strings  int z = Integer.parseInt('654'8);   int a = Integer.parseInt('-FF' 16);  long l = Long.parseLong('2158611234'10);     System.out.println(z);  System.out.println(a);  System.out.println(l);    // run-time NumberFormatException will occur here  // 'Geeks' is not a parsable string  int x = Integer.parseInt('Geeks'8);     // run-time NumberFormatException will occur here  // (for octal(8)allowed digits are [0-7])  int y = Integer.parseInt('99'8);     } } 


出力: 
 

428 -255 2158611234 Exception in thread 'main' java.lang.NumberFormatException: For input string: 'Geeks' at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at Test.main(Test.java:17)


 

文字列Javaを比較する
    int parseInt(String s): このメソッドは、デフォルトの基数が 10 (10 進数) である上記のメソッドの別の変形です。 
     
  Syntax :    static int parseInt(String s)   Parameters :    s - any String representation of decimal   Returns :   the integer value represented by the argument in decimal.   Throws :   NumberFormatException : if the string does not contain a parsable integer.


 

Java
//Java program to demonstrate Integer.parseInt() method public class Test {  public static void main(String[] args)   {  // parsing different strings  int z = Integer.parseInt('654');   long l = Long.parseLong('2158611234');     System.out.println(z);  System.out.println(l);    // run-time NumberFormatException will occur here  // 'Geeks' is not a parsable string  int x = Integer.parseInt('Geeks');     // run-time NumberFormatException will occur here  // (for decimal(10)allowed digits are [0-9])  int a = Integer.parseInt('-FF');    } } 


出力: 
 

654 2158611234 Exception in thread 'main' java.lang.NumberFormatException: For input string: 'Geeks' at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at Test.main(Test.java:15)


 

    文字列 toString(): toString() メソッドには 2 つのバリエーションがあります。これらは数値の文字列表現を取得するために使用されます。これらのメソッドの他のバリエーションは次のとおりです。 Integer.toBinaryString(int i) Integer.toHexString(int i) Integer.toOctalString(int i) これは、指定された integer(i) の 2 進数 16 進数、10 進数 8 進数の文字列表現をそれぞれ返します。 
     
  Syntax :    String toString() String toString(int i)   Parameters :    String toString() - no parameter String toString(int i) - i: any integer value   Returns :   String toString() - returns a String object representing the value of the Number object on which it is invoked. String toString(int i) - returns a decimal String object representing the specified integer(i)
Java
//Java program to demonstrate Integer.toString()  //and Integer.toString(int i) method public class Test {  public static void main(String[] args)  {  // demonstrating toString() method  Integer x = 12;    System.out.println(x.toString());     // demonstrating toString(int i) method  System.out.println(Integer.toString(12));    System.out.println(Integer.toBinaryString(152));  System.out.println(Integer.toHexString(152));   System.out.println(Integer.toOctalString(152));  } } 


出力: 
 

12 12 10011000 98 230


 

    整数値Of(): valueOf() メソッドには 3 つのバリエーションがあります。これら 3 つのメソッドはすべて、プリミティブ整数の値を保持する Integer オブジェクトを返します。 
     
  Syntax :    Integer valueOf(int i) Integer valueOf(String s) Integer valueOf(String s int radix)   Parameters :    i - any integer value s - any String representation of decimal radix - any radix value   Returns :   valueOf(int i) : an Integer object holding the valuerepresented by the int argument. valueOf(String s) : an Integer object holding value represented by the string argument. valueOf(String s int radix) : an Integer object holding the value represented by the string argument with base radix.   Throws :   valueOf(String s) - NumberFormatException : if the string does not contain a parsable integer. valueOf(String s int radix) - NumberFormatException : if the string does not contain a parsable integer.


 

Java
// Java program to demonstrate valueOf() method public class Test {  public static void main(String[] args)  {  // demonstrating valueOf(int i) method  System.out.println('Demonstrating valueOf(int i) method');  Integer i =Integer.valueOf(50);   Double d = Double.valueOf(9.36);   System.out.println(i);  System.out.println(d);    // demonstrating valueOf(String s) method  System.out.println('Demonstrating valueOf(String s) method');  Integer n = Integer.valueOf('333');   Integer m = Integer.valueOf('-255');   System.out.println(n);  System.out.println(m);    // demonstrating valueOf(String sint radix) method  System.out.println('Demonstrating (String sint radix) method');  Integer y = Integer.valueOf('333'8);   Integer x = Integer.valueOf('-255'16);   Long l = Long.valueOf('51688245'16);   System.out.println(y);  System.out.println(x);  System.out.println(l);    // run-time NumberFormatException will occur in below cases  Integer a = Integer.valueOf('Geeks');  Integer b = Integer.valueOf('Geeks'16);   } } 


出力: 
 

スパークチュートリアル
Demonstrating valueOf(int i) method 50 9.36 Demonstrating valueOf(String s) method 333 -255 Demonstrating (String sint radix) method 219 -597 1365803589 Exception in thread 'main' java.lang.NumberFormatException: For input string: 'Geeks' at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.valueOf(Integer.java:766) at Test.main(Test.java:28)


 


練習問題:  
指定された Java コードの出力は何ですか?  
 

Java
public class Test {  public static void main(String[] args)  {  Integer i = Integer.parseInt('Kona' 27);  System.out.println(i);  } } 

オプション:  
 

A) NumberFormatException at run-time B) NumberFormatException at compile-time C) 411787


答え :  
 

C) 411787


説明 :  
基数は 27 なので、文字列リテラルで使用できる文字は [0-9][A-Q] (10 から 26 まで) です。したがって、その値は次のように計算されます。 
=> a*(27^0) + n*(27^1) + o*(27^2) + k*(27^3) 
=> 10*1 + 23*27 + 24*27*27 + 20*27*27*27 
=> 10 + 621 + 17496 + 393660 
=> 411787
 

クイズの作成