Java-strengkonverteringer

1. Oversigt

I denne hurtige artikel undersøger vi nogle enkle konverteringer af Snor objekter til forskellige datatyper, der understøttes i Java.

2. Konvertering Snor til int eller Heltal

Hvis vi har brug for at konvertere en Snor til primitiv int eller Heltal indpakningstype, kan vi bruge enten parseInt () eller Værdi af() API'er for at få det tilsvarende int eller Heltal returværdi:

@Test offentlig ugyldig nårConvertedToInt_thenCorrect () {String beforeConvStr = "1"; int afterConvInt = 1; assertEquals (Integer.parseInt (beforeConvStr), afterConvInt); } @Test offentlig ugyldig nårConvertedToInteger_thenCorrect () {String beforeConvStr = "12"; Heltal efterConvInteger = 12; assertEquals (Integer.valueOf (beforeConvStr) .equals (afterConvInteger), true); }

3. Konvertering Snor til lang eller Lang

Hvis vi har brug for at konvertere en Snor til primitiv lang eller Lang indpakningstype, vi kan bruge parseLong () eller Værdi af() henholdsvis:

@Test offentlig ugyldig nårConvertedTolong_thenCorrect () {String beforeConvStr = "12345"; længe efterConvLongPrimitive = 12345; assertEquals (Long.parseLong (beforeConvStr), afterConvLongPrimitive); } @Test offentlig ugyldig nårConvertedToLong_thenCorrect () {String beforeConvStr = "14567"; Længe efter ConvLong = 14567l; assertEquals (Long.valueOf (beforeConvStr) .equals (afterConvLong), true); }

4. Konvertering Snor til dobbelt eller Dobbelt

Hvis vi har brug for at konvertere en Snor til primitiv dobbelt eller Dobbelt indpakningstype, vi kan bruge parseDouble () eller Værdi af() henholdsvis:

@Test offentlig ugyldig nårConvertedTodouble_thenCorrect () {String beforeConvStr = "1.4"; dobbelt efterConvDoublePrimitive = 1,4; assertEquals (Double.parseDouble (beforeConvStr), afterConvDoublePrimitive, 0.0); } @Test offentlig ugyldig nårConvertedToDouble_thenCorrect () {String beforeConvStr = "145.67"; dobbelt efterConvDouble = 145,67d; assertEquals (Double.valueOf (beforeConvStr) .equals (afterConvDouble), true); }

5. Konvertering Snor til ByteArray

For at konvertere en Snor til et byte-array, getBytes () koder for Snor i en sekvens af bytes ved hjælp af platformens standardtegn, hvor resultatet gemmes i et nyt byte-array.

Opførelsen af getBytes () er uspecificeret, når bestået Snor kan ikke kodes ved hjælp af standardtegnet. I henhold til java-dokumentationen skal klassen java.nio.charset.CharsetEncoder bruges, når der kræves mere kontrol over kodningsprocessen:

@Test offentlig ugyldig nårConvertedToByteArr_thenCorrect () {String beforeConvStr = "abc"; byte [] afterConvByteArr = ny byte [] {'a', 'b', 'c'}; assertEquals (Arrays.equals (beforeConvStr.getBytes (), afterConvByteArr), true); }

6. Konvertering Snor til CharArray

For at konvertere en Snor til en CharArray eksempel kan vi simpelthen bruge toCharArray ():

@Test offentligt ugyldigt nårConvertedToCharArr_thenCorrect () {String beforeConvStr = "hej"; char [] afterConvCharArr = {'h', 'e', ​​'l', 'l', 'o'}; assertEquals (Arrays.equals (beforeConvStr.toCharArray (), afterConvCharArr), sandt); }

7. Konvertering Snor til boolsk eller Boolsk

At konvertere en Snor eksempel til primitiv boolsk eller Boolsk indpakningstype, vi kan bruge parseBoolean () eller Værdi af() API'er henholdsvis:

@Test offentlig ugyldigt nårConvertedToboolean_thenCorrect () {String beforeConvStr = "true"; boolsk afterConvBooleanPrimitive = sand; assertEquals (Boolean.parseBoolean (beforeConvStr), afterConvBooleanPrimitive); } @Test offentlig ugyldig nårConvertedToBoolean_thenCorrect () {String beforeConvStr = "true"; Boolsk afterConvBoolean = sand; assertEquals (Boolean.valueOf (beforeConvStr), afterConvBoolean); }

8. Konvertering Snor til Dato eller LocalDateTime

Java 6 leverer java.util.Date datatype til repræsentation af datoer. Java 8 introducerede nye API'er til Dato og Tid for at afhjælpe de ældres mangler java.util.Date og java.util.Kalender.

Du kan læse denne artikel for flere detaljer.

8.1. Konvertering Snor til java.util.Date

For at konvertere Snor genstande mod Dato objekter, skal vi først konstruere en SimpleDateFormat objekt ved at passere mønsteret, der beskriver dato- og tidsformatet.

For eksempel kan en mulig værdi for mønster være “MM-dd-åååå” eller “åååå-MM-dd”. Derefter skal vi påberåbe os parse metode, der passerer Snor.

Det Snor bestået som argument skal være i samme format som mønsteret. Ellers a ParseException kastes ved kørselstid:

@Test offentlig ugyldig nårConvertedToDate_thenCorrect () kaster ParseException {String beforeConvStr = "15/10/2013"; int afterConvCalendarDay = 15; int afterConvCalendarMonth = 9; int afterConvCalendarYear = 2013; SimpleDateFormat formatter = ny SimpleDateFormat ("dd / M / åååå"); Dato efterConvDate = formatter.parse (førConvStr); Kalenderkalender = ny gregoriansk kalender (); calendar.setTime (afterConvDate); assertEquals (calendar.get (Calendar.DAY_OF_MONTH), afterConvCalendarDay); assertEquals (calendar.get (Calendar.MONTH), afterConvCalendarMonth); assertEquals (calendar.get (Calendar.YEAR), afterConvCalendarYear); }

8.2. Konvertering Snor til java.time.LocalDateTime

LocalDateTime er et uforanderligt dato- og tidsobjekt, der repræsenterer en tid, ofte betragtet som år-måned-dag-time-minut-sekund.

For at konvertere strengobjekter til LocalDateTime genstande, kan vi simpelthen bruge parse API:

@Test offentlig ugyldig nårConvertedToLocalDateTime_thenCorrect () {String str = "2007-12-03T10: 15: 30"; int afterConvCalendarDay = 03; Måned efterConvCalendarMonth = Måned.DECEMBER; int afterConvCalendarYear = 2007; LocalDateTime afterConvDate = ny UseLocalDateTime (). GetLocalDateTimeUsingParseMethod (str); assertEquals (afterConvDate.getDayOfMonth (), afterConvCalendarDay); assertEquals (efterConvDate.getMonth (), efterConvCalendarMonth); assertEquals (afterConvDate.getYear (), afterConvCalendarYear); }

Det Snor skal repræsentere et gyldigt tidspunkt i henhold til java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME. Ellers a ParseException vil blive kastet ved kørsel.

For eksempel '2011-12-03'Repræsenterer et gyldigt strengformat med 4 cifre for året, 2 cifre for måneden i et år og 2 cifre for dagen i måneden.

9. Konklusion

I denne hurtige vejledning har vi dækket forskellige hjælpemetoder til konvertering af String objekter til forskellige datatyper understøttet i java.

Den komplette kildekode og alle kodestykker til denne artikel er tilgængelige på GitHub.