Konvertálja a karakterlánc egészére a Groovy-ban

1. Áttekintés

Ebben a rövid bemutatóban különböző módokat mutatunk be a konvertáláshoz Húr nak nek Egész szám Groovy-ban.

2. Casting with mint

Az első módszer, amelyet felhasználhatunk az átalakításra, a mint kulcsszó, amely megegyezik a osztályé asType () módszer:

@Test void givenString_whenUsingAsInteger_thenConvertToInteger () {def stringNum = "123" Integer várhatóInteger = 123 Egész integerNum = stringNum egész számként assertEquals (integerNum, várhatóInteger)}

A fentiekhez hasonlóan használhatjuk mint int:

@Test void givenString_whenUsingAsInt_thenConvertToInt () {def stringNum = "123" int vártInt = 123 int intNum = stringNum mint int assertEquals (intNum, várhatóInt)}

3. egészben

Egy másik módszer a Groovy JDK kiterjesztése java.lang.CharSequence:

@Test void givenString_whenUsingToInteger_thenConvertToInteger () {def stringNum = "123" int várhatóInt = 123 int intNum = stringNum.toInteger () assertEquals (intNum, várhatóInt)}

4. Egész # parseInt

A harmadik módszer a használat Java statikus módszere Integer.parseInt ():

@Test void givenString_whenUsingParseInt_thenConvertToInteger () {def stringNum = "123" int várhatóInt = 123 int intNum = Integer.parseInt (stringNum) assertEquals (intNum, várhatóInt)}

5. Egész # intValue

Alternatív módszer egy új létrehozása Egész szám objektum és hívja annak intValue módszer:

@Test void givenString_whenUsingIntValue_thenConvertToInteger () {def stringNum = "123" int várhatóInt = 123 int intNum = új egész (stringNum) .intValue () assertEquals (intNum, várhatóInt)}

Vagy ebben az esetben használhatjuk a just-t is új egész szám (stringNum):

@Test void givenString_whenUsingNewInteger_thenConvertToInteger () {def stringNum = "123" int vártInt = 123 int intNum = új egész (stringNum) assertEquals (intNum, várhatóInt)}

6. Egész # értékOf

Hasonló Integer.parseInt (), használhatjuk a Java statikus módszerét is Egész # értékOf:

@Test void givenString_whenUsingValueOf_thenConvertToInteger () {def stringNum = "123" int várhatóInt = 123 int intNum = Integer.valueOf (stringNum) assertEquals (intNum, várhatóInt)}

7. DecimalFormat

Utolsó módszerünkre pedig alkalmazhatjuk a Java-kat DecimalFormat osztály:

@Test void givenString_whenUsingDecimalFormat_thenConvertToInteger () {def stringNum = "123" int várhatóInt = 123 DecimalFormat decimalFormat = new DecimalFormat ("#") int intNum = decimalFormat.parse (stringNum) .intValue (nt)

8. Kivételek kezelése

Így, ha az átalakítás sikertelen, például ha vannak nem numerikus karakterek, a NumberFormatException dobni fogják. Ezenkívül abban az esetben, ha Húr van nulla, NullPointerException dobni fogják:

@Test (várható = NumberFormatException.class) void givenInvalidString_whenUsingAs_thenThrowNumberFormatException () {def érvénytelenString = "123a" érvénytelenString mint Integer} @Test (várható = NullPointerException.classT_Tugas} érvénytelen_ érvénytelen_ érvénytelen_ érvénytelen

Ennek megakadályozása érdekében megtehetjük használja a isInteger módszer:

@Test void givenString_whenUsingIsInteger_thenCheckIfCorrectValue () {def invalidString = "123a" def validString = "123" def invalidNum = invalidString? .IsInteger ()? invalidString egész számként: false def correctNum = validString? .isInteger ()? validString egész számként: false assertEquals (false, invalidNum) assertEquals (123, correctNum)}

9. Összegzés

Ebben a rövid cikkben bemutattunk néhány hatékony módot a váltásra Húr nak nek Egész szám tárgyak Groovy-ban.

Amikor az objektumtípus átalakítására a legjobb módszert választjuk, a fentiek mindegyike egyformán jó. A legfontosabb az, hogy először elkerüljük a hibákat annak ellenőrzése, hogy a Húr alkalmazásunkban lehet nem numerikus, üres vagy nulla.

Szokás szerint az összes kódpélda megtalálható a GitHubon.