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.