logo

Java.lang.Number-klasse in Java

Meestal gebruiken we bij het werken met getallen in Java primitieve gegevenstypen . Maar Java biedt ook verschillende numerieke wikkel subklassen onder de abstracte klasse Nummer aanwezig in java.lang pakket. Er zijn voornamelijk zes subklassen onder Nummerklasse. Deze subklassen definiëren enkele nuttige methoden die vaak worden gebruikt bij het omgaan met getallen.
 

objecten-nummerHiërarchie' title=


Deze klassen 'verpakken' het primitieve gegevenstype in een overeenkomstig object. Vaak wordt het inpakken gedaan door de compiler. Als u een primitief gebruikt waarbij een object wordt verwacht, plaatst de compiler de primitief in zijn wrapper-klasse voor u. Op dezelfde manier, als u een Number-object gebruikt wanneer er een primitief wordt verwacht, pakt de compiler het object voor u uit. Dit wordt ook wel Autoboxing en Unboxing genoemd.
Waarom zou ik een Number-klasseobject gebruiken boven primitieve gegevens?  
 



  • Constanten gedefinieerd door de getalklasse, zoals MIN_VALUE en MAX_VALUE, die de boven- en ondergrenzen van het gegevenstype bieden, zijn zeer nuttig.
  • Nummerklasse-object kan worden gebruikt als argument van een methode die een object verwacht (vaak gebruikt bij het manipuleren van verzamelingen getallen).
  • Klassenmethoden kunnen worden gebruikt voor het converteren van waarden van en naar andere primitieve typen, voor het converteren van en naar strings en voor het converteren tussen getalsystemen (decimaal octaal hexadecimaal binair).


Methoden die gemeenschappelijk zijn voor alle subklassen van Number:  
 

bin naar bcd
    xxx xxxWaarde(): Hier vertegenwoordigt xxx primitieve getalgegevenstypen (byte short int long float double). Deze methode wordt gebruikt om de waarde van te converteren dit Nummerobject voor het opgegeven primitieve gegevenstype. 
     
  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);  } } 

Uitgang: 
 

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


Opmerking : Tijdens het converteren kan mogelijk nauwkeurigheidsverlies optreden. Zoals we bijvoorbeeld kunnen zien, is dat breukgedeelte ('.9685') weggelaten tijdens het converteren van Double-object naar int-gegevenstype. 
 

    int CompareTo(NumberSubClass referentieNaam): Deze methode wordt gebruikt om te vergelijken dit Nummer object voor het opgegeven argument. Twee verschillende typen kunnen echter niet worden vergeleken, dus zowel het argument als het Number-object dat de methode aanroept, moeten van hetzelfde type zijn. De referenceName kan een Byte Double Integer Float Long of Short zijn. 
     
  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));   } } 


Uitgang: 
 

alfabet genummerd
1 -1 0


 

    Booleaanse waarde is gelijk aan(Object obj): Deze methode bepaalt of dit Getalobject is gelijk aan het argument. 
     
  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));  } } 


Uitgang: 
 

false false true


 

    int parseInt(String sint radix): Deze methode wordt gebruikt om het primitieve gegevenstype van a te verkrijgen Snaar . Radix wordt gebruikt om decimale(10), octale(8) of hexadecimale(16) enz. representatie als uitvoer te retourneren. 
     
  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);     } } 


Uitgang: 
 

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)


 

Python converteert bytes naar string
    int parseInt(String s): Deze methode is een andere variant van de bovenstaande methode waarbij de radix standaard 10 (decimaal) is. 
     
  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');    } } 


Uitgang: 
 

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)


 

    Tekenreeks naarString(): Er zijn twee varianten van de methode toString(). Ze worden gebruikt om een ​​String-representatie van een getal te verkrijgen. De andere varianten van deze methoden zijn Integer.toBinaryString(int i) Integer.toHexString(int i) Integer.toOctalString(int i) die respectievelijk een binaire hexa-decimale octale tekenreeksrepresentatie van het opgegeven gehele getal (i) retourneert. 
     
  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));  } } 


Uitgang: 
 

12 12 10011000 98 230


 

    Geheel getalwaardeVan(): Er zijn drie varianten van de methode valueOf(). Al deze drie methoden retourneren een Integer-object dat de waarde van een primitief geheel getal bevat. 
     
  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);   } } 


Uitgang: 
 

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)


 


Oefenvraag:  
Wat is de uitvoer van de gegeven Java-code?  
 

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

Opties:  
 

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


Antwoord :  
 

C) 411787


Uitleg :  
Omdat radix 27 is, zijn de toegestane tekens in een letterlijke String [0-9][A-Q] (voor 10 tot 26). De waarde ervan wordt dus als volgt berekend: 
=> 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
 

lengte van Java-tekenreeks
Quiz maken