Pretvori niz u cijeli broj u Groovyju

1. Pregled

U ovom kratkom vodiču prikazat ćemo različite načine pretvorbe iz Niz do Cijeli broj u Groovyju.

2. Lijevanje sa kao

Prva metoda koju možemo koristiti za pretvorbu je kao ključna riječ, što je isto kao pozivanje razredu asType () metoda:

@Test void givenString_whenUsingAsInteger_thenConvertToInteger () {def stringNum = "123" Integer očekujeInteger = 123 Integer integerNum = stringNum kao Integer assertEquals (integerNum, očekujeInteger)}

Kao i gore, možemo koristiti kao int:

@Test void givenString_whenUsingAsInt_thenConvertToInt () {def stringNum = "123" int očekuje seInt = 123 int intNum = stringNum kao int assertEquals (intNum, očekuje seInt)}

3. toInteger

Druga metoda je iz proširenja Groovy JDK za java.lang.CharSequence:

@Test void givenString_whenUsingToInteger_thenConvertToInteger () {def stringNum = "123" int očekuje seInt = 123 int intNum = stringNum.toInteger () assertEquals (intNum, očekuje seInt)}

4. Cijeli broj # parseInt

Treći način je korištenje Javina statička metoda Integer.parseInt ():

@Test void givenString_whenUsingParseInt_thenConvertToInteger () {def stringNum = "123" int očekujeInt = 123 int intNum = Integer.parseInt (stringNum) assertEquals (intNum, očekuje seInt)}

5. Cijeli broj # intValue

Alternativna metoda je stvaranje nove Cijeli broj objekt i nazvati njegov intValue metoda:

@Test void givenString_whenUsingIntValue_thenConvertToInteger () {def stringNum = "123" int očekivanInt = 123 int intNum = novi cijeli broj (stringNum) .intValue () assertEquals (intNum, očekuje seInt)}

Ili, u ovom slučaju, možemo koristiti i just novi cijeli broj (stringNum):

@Test void givenString_whenUsingNewInteger_thenConvertToInteger () {def stringNum = "123" int očekivanInt = 123 int intNum = novi cijeli broj (stringNum) assertEquals (intNum, očekuje seInt)}

6. Cijeli broj # vrijednostOf

Slično Integer.parseInt (), također možemo koristiti statičku metodu Java Cijeli broj # vrijednostOf:

@Test void givenString_whenUsingValueOf_thenConvertToInteger () {def stringNum = "123" int očekujeInt = 123 int intNum = Integer.valueOf (stringNum) assertEquals (intNum, očekuje seInt)}

7. DecimalFormat

I za našu posljednju metodu možemo primijeniti Java DecimalFormat razred:

@Test void givenString_whenUsingDecimalFormat_thenConvertToInteger () {def stringNum = "123" int očekujeInt = 123 DecimalFormat decimalFormat = new DecimalFormat ("#") int intNum = decimalFormat.parse (stringNum) .intValue () assertEquals (intNum),

8. Rukovanje iznimkama

Tako, ako pretvorba ne uspije, poput ako postoje numerički znakovi, a NumberFormatException bit će bačen. Uz to, u slučaju kada Niz je null, NullPointerException bit će bačen:

@Test (očekuje se = NumberFormatException.class) void givenInvalidString_whenUsingAs_thenThrowNumberFormatException () {def invalidString = "123a" invalidString kot Integer} @Test (očekuje se = NullPointerException.class) void givenNullStringOutNullStringEtgetNollUtStringPoštNetulStringPoštNetulStringPoštNetul

Da se to ne bi dogodilo, možemo koristiti isInteger metoda:

@Test void givenString_whenUsingIsInteger_thenCheckIfCorrectValue () {def invalidString = "123a" def validString = "123" def invalidNum = invalidString? .IsInteger ()? invalidString kao Integer: false def correctNum = validString? .isInteger ()? validString kao Integer: false assertEquals (false, invalidNum) assertEquals (123, correctNum)}

9. Sažetak

U ovom smo kratkom članku pokazali neke učinkovite načine prebacivanja s Niz do Cijeli broj objekti u Groovyju.

Kada je riječ o odabiru najbolje metode za pretvaranje vrste objekta, sve navedeno je jednako dobro. Najvažnije je prvo izbjeći pogreške provjera je li vrijednost Niz u našoj aplikaciji može biti numerički, prazan ili null.

Kao i obično, svi primjeri koda mogu se naći na GitHubu.