Java-strengkonvertering

1. Oversikt

I denne raske artikkelen vil vi utforske noen enkle konverteringer av String objekter til forskjellige datatyper som støttes i Java.

2. Konvertering String til int eller Heltall

Hvis vi trenger å konvertere en String til primitiv int eller Heltall innpakningstype, kan vi bruke enten parseInt () eller verdien av() APIer for å få det tilsvarende int eller Heltall returverdi:

@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"; Heltall etterConvInteger = 12; assertEquals (Integer.valueOf (beforeConvStr) .equals (afterConvInteger), true); }

3. Konvertering String til lang eller Lang

Hvis vi trenger å konvertere en String til primitiv lang eller Lang innpakningstype, kan vi bruke parseLong () eller verdien av() henholdsvis:

@Test offentlig ugyldig nårConvertedTolong_thenCorrect () {String beforeConvStr = "12345"; lenge etterConvLongPrimitive = 12345; assertEquals (Long.parseLong (beforeConvStr), afterConvLongPrimitive); } @Test offentlig ugyldig nårConvertedToLong_thenCorrect () {String beforeConvStr = "14567"; Langt etterConvLong = 14567l; assertEquals (Long.valueOf (beforeConvStr) .equals (afterConvLong), true); }

4. Konvertering String til dobbelt eller Dobbelt

Hvis vi trenger å konvertere en String til primitiv dobbelt eller Dobbelt innpakningstype, kan vi bruke parseDouble () eller verdien av() henholdsvis:

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

5. Konvertering String til ByteArray

For å konvertere en String til en byteoppstilling, getBytes () koder for String i en sekvens av byte ved hjelp av plattformens standardtegnsett, og lagrer resultatet i et nytt byte-utvalg.

Oppførselen til getBytes () er uspesifisert når bestått String kan ikke kodes ved hjelp av standardtegnsettet. I henhold til java-dokumentasjonen, bør klassen java.nio.charset.CharsetEncoder brukes når mer kontroll over kodingsprosessen er nødvendig:

@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 String til CharArray

For å konvertere en String til en CharArray For eksempel kan vi bare bruke toCharArray ():

@Test offentlig ugyldig nårConvertedToCharArr_thenCorrect () {String beforeConvStr = "hei"; char [] afterConvCharArr = {'h', 'e', ​​'l', 'l', 'o'}; assertEquals (Arrays.equals (beforeConvStr.toCharArray (), afterConvCharArr), true); }

7. Konvertering String til boolsk eller Boolsk

Å konvertere en String eksempel til primitiv boolsk eller Boolsk innpakningstype, kan vi bruke parseBoolean () eller verdien av() APIer henholdsvis:

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

8. Konvertering String til Dato eller LocalDateTime

Java 6 gir java.util.Date datatype for å representere datoer. Java 8 introduserte nye APIer for Dato og Tid for å løse manglene til de eldre java.util.Date og java.util.Kalender.

Du kan lese denne artikkelen for mer informasjon.

8.1. Konvertering String til java.util.Date

For å konvertere String gjenstander til Dato gjenstander, må vi først konstruere en SimpleDateFormat objekt ved å sende mønsteret som beskriver dato og klokkeslettformat.

For eksempel kan en mulig verdi for mønster være “MM-dd-åååå” eller “åååå-MM-dd”. Deretter må vi påberope oss analysere metoden som passerer String.

De String bestått som argument skal være i samme format som mønsteret. Ellers kan en ParseException blir kastet ved kjøretid:

@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 etterConvDate = 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 String til java.time.LocalDateTime

LocalDateTime er et uforanderlig dato- og tidsobjekt som representerer en tid, ofte sett på som år-måned-dag-time-minutt-sekund.

For å konvertere strengobjekter til LocalDateTime gjenstander, kan vi ganske enkelt bruke analysere API:

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

De String må representere en gyldig tid i henhold til java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME. Ellers kan en ParseException vil bli kastet ved kjøretid.

For eksempel '2011-12-03‘Representerer et gyldig strengformat som har fire sifre for året, to sifre for måneden i et år og to sifre for dagen i måneden.

9. Konklusjon

I denne raske opplæringen har vi dekket forskjellige verktøy for konvertering av String objekter til forskjellige datatyper som støttes i java.

Den komplette kildekoden og alle kodebiter for denne artikkelen er tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found