logo

Јава.ланг.Нумбер Класа у Јави

Већину времена док радимо са бројевима у Јави користимо примитивни типови података . Али Јава такође нуди различите нумеричке омотач подкласе под апстрактном класом Број присутан у јава.ланг пакет. Углавном постоје шест подкласе под класом Број. Ове подкласе дефинишу неке корисне методе које се често користе при раду са бројевима.
 

објецтс-нумберХиерарцхи' title=


Ове класе 'умотају' примитивни тип података у одговарајући објекат. Често премотавање врши компајлер. Ако користите примитив тамо где се очекује објекат, компајлер ће примитиву ставити у кутију у своју класу омотача за вас. Слично, ако користите објекат Нумбер када се очекује примитив, компајлер распакује објекат уместо вас. Ово се такође назива аутоматско боксовање и распакивање.
Зашто користити објекат класе Нумбер преко примитивних података?  
 



  • Константе дефинисане класом бројева као што су МИН_ВАЛУЕ и МАКС_ВАЛУЕ које обезбеђују горње и доње границе типа података су веома корисне.
  • Објекат класе бројева се може користити као аргумент методе која очекује објекат (често се користи када се манипулише збиркама бројева).
  • Методе класа се могу користити за претварање вредности у и из других примитивних типова за претварање у и из стрингова и за конверзију између бројевних система (децимални октални хексадецимални бинарни).


Методе заједничке за све подкласе броја:  
 

куцано писмо датум време
    ккк кккВалуе(): Овде ккк представљају типове података примитивног броја (бајт кратки инт лонг флоат доубле). Овај метод се користи за претварање вредности од ово Број објекта за наведени примитивни тип података. 
     
  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


Напомена : Током конверзије може доћи до губитка прецизности. На пример, као што видимо да је фрацтион парт('.9685') изостављен током конверзије из Доубле објецт у инт тип података. 
 

    инт цомпареТо(НумберСубЦласс референцеНаме): Овај метод се користи за поређење ово Број објекта за наведени аргумент. Међутим, два различита типа се не могу поредити тако да и аргумент и објекат Нумбер који позивају метод треба да буду истог типа. Референтно име може бити бајт Доубле Интегер Флоат Лонг или Схорт. 
     
  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


 

    боолеан једнако (Објецт обј): Овај метод одређује да ли ово Број објекта је једнак аргументу. 
     
  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));  } } 


Излаз: 
 

хасхмап у Јави
false false true


 

    инт парсеИнт(Стринг синт радик): Овај метод се користи за добијање примитивног типа података а Стринг . Радик се користи за враћање децималног(10) окталног(8) или хексадецималног(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)


 

боурне-агаин схелл
    инт парсеИнт(Стринг с): Овај метод је још једна варијанта горње методе где је подразумевано основа 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)


 

    Стринг тоСтринг(): Постоје две варијанте методе тоСтринг(). Користе се за добијање стринг репрезентације броја. Друге варијанте ових метода су Интегер.тоБинариСтринг(инт и) Интегер.тоХекСтринг(инт и) Интегер.тоОцталСтринг(инт и) који ће вратити бинарну хексадецималну окталну репрезентацију наведеног целог броја(и). 
     
  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


 

    Целобројна вредност(): Постоје три варијанте методе валуеОф(). Све ове три методе враћају Интегер објекат који садржи вредност примитивног целог броја. 
     
  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);   } } 


Излаз: 
 

к4 месеца
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
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][А-К](за 10 до 26). Дакле, његова вредност ће се израчунати на следећи начин: 
=> а*(27^0) + н*(27^1) + о*(27^2) + к*(27^3) 
=> 10*1 + 23*27 + 24*27*27 + 20*27*27*27 
=> 10 + 621 + 17496 + 393660 
=> 411787
 

Креирај квиз