Java-stringconversies

1. Overzicht

In dit korte artikel zullen we enkele eenvoudige conversies van Draad objecten naar verschillende gegevenstypen die worden ondersteund in Java.

2. Converteren Draad naar int of Geheel getal

Als we een Draad tot primitief int of Geheel getal wrapper type, kunnen we ofwel de parseInt () of waarde van() API's om de bijbehorende int of Geheel getal winstwaarde:

@Test public void whenConvertedToInt_thenCorrect () {String beforeConvStr = "1"; int afterConvInt = 1; assertEquals (Integer.parseInt (beforeConvStr), afterConvInt); } @Test public void whenConvertedToInteger_thenCorrect () {String beforeConvStr = "12"; Geheel getal afterConvInteger = 12; assertEquals (Integer.valueOf (beforeConvStr) .equals (afterConvInteger), true); }

3. Omzetten Draad naar lang of Lang

Als we een Draad tot primitief lang of Lang wikkeltype kunnen we gebruiken parseLong () of waarde van() respectievelijk:

@Test public void whenConvertedTolong_thenCorrect () {String beforeConvStr = "12345"; lang afterConvLongPrimitive = 12345; assertEquals (Long.parseLong (beforeConvStr), afterConvLongPrimitive); } @Test public void whenConvertedToLong_thenCorrect () {String beforeConvStr = "14567"; Lang afterConvLong = 14567l; assertEquals (Long.valueOf (beforeConvStr) .equals (afterConvLong), true); }

4. Converteren Draad naar dubbele of Dubbele

Als we een Draad tot primitief dubbele of Dubbele wikkeltype kunnen we gebruiken parseDouble () of waarde van() respectievelijk:

@Test public void whenConvertedTodouble_thenCorrect () {String beforeConvStr = "1.4"; dubbele afterConvDoublePrimitive = 1.4; assertEquals (Double.parseDouble (beforeConvStr), afterConvDoublePrimitive, 0.0); } @Test public void whenConvertedToDouble_thenCorrect () {String beforeConvStr = "145.67"; dubbele afterConvDouble = 145.67d; assertEquals (Double.valueOf (beforeConvStr) .equals (afterConvDouble), true); }

5. Omzetten Draad naar ByteArray

Om een Draad naar een byte-array, getBytes () codeert het Draad in een reeks bytes met behulp van de standaard tekenset van het platform, waarbij het resultaat wordt opgeslagen in een nieuwe byte-array.

Het gedrag van getBytes () is niet gespecificeerd wanneer het geslaagd is Draad kan niet worden gecodeerd met de standaard tekenset. Volgens de java-documentatie moet de klasse java.nio.charset.CharsetEncoder worden gebruikt wanneer meer controle over het coderingsproces vereist is:

@Test openbare leegte whenConvertedToByteArr_thenCorrect () {String beforeConvStr = "abc"; byte [] afterConvByteArr = nieuwe byte [] {'a', 'b', 'c'}; assertEquals (Arrays.equals (beforeConvStr.getBytes (), afterConvByteArr), true); }

6. Omzetten Draad naar CharArray

Om een Draad naar een CharArray we kunnen bijvoorbeeld gewoon gebruiken toCharArray ():

@Test openbare leegte whenConvertedToCharArr_thenCorrect () {String beforeConvStr = "hallo"; char [] afterConvCharArr = {'h', 'e', ​​'l', 'l', 'o'}; assertEquals (Arrays.equals (beforeConvStr.toCharArray (), afterConvCharArr), true); }

7. Omzetten Draad naar boolean of Boolean

Om een Draad instantie naar primitief boolean of Boolean wikkeltype kunnen we gebruiken parseBoolean () of waarde van() API's respectievelijk:

@Test public void whenConvertedToboolean_thenCorrect () {String beforeConvStr = "true"; boolean afterConvBooleanPrimitive = true; assertEquals (Boolean.parseBoolean (beforeConvStr), afterConvBooleanPrimitive); } @Test public void whenConvertedToBoolean_thenCorrect () {String beforeConvStr = "true"; Boolean afterConvBoolean = true; assertEquals (Boolean.valueOf (beforeConvStr), afterConvBoolean); }

8. Omzetten Draad naar Datum of LocalDateTime

Java 6 biedt het java.util.Date datatype voor het weergeven van datums. Java 8 introduceerde nieuwe API's voor Datum en Tijd om de tekortkomingen van ouderen aan te pakken java.util.Date en java.util.Calendar.

U kunt dit artikel lezen voor meer details.

8.1. Omzetten Draad naar java.util.Date

Om te converteren Draad bezwaar tegen Datum objecten, moeten we eerst een SimpleDateFormat object door het patroon door te geven dat de datum- en tijdnotatie beschrijft.

Een mogelijke waarde voor patroon kan bijvoorbeeld "MM-dd-jjjj" of "jjjj-MM-dd" zijn. Vervolgens moeten we een beroep doen op ontleden methode passeren van de Draad.

De Draad doorgegeven als argument moet dezelfde indeling hebben als het patroon. Anders een ParseException zal tijdens runtime worden gegooid:

@Test public void whenConvertedToDate_thenCorrect () gooit ParseException {String beforeConvStr = "15/10/2013"; int afterConvCalendarDay = 15; int afterConvCalendarMonth = 9; int afterConvCalendarYear = 2013; SimpleDateFormat formatter = nieuwe SimpleDateFormat ("dd / M / jjjj"); Datum afterConvDate = formatter.parse (beforeConvStr); Kalenderkalender = nieuwe GregorianCalendar (); 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. Omzetten Draad naar java.time.LocalDateTime

LocalDateTime is een onveranderlijk datum-tijdobject dat een tijd vertegenwoordigt, vaak gezien als jaar-maand-dag-uur-minuut-seconde.

Om String-objecten te converteren naar LocalDateTime objecten, kunnen we gewoon de ontleden API:

@Test openbare ongeldig whenConvertedToLocalDateTime_thenCorrect () {String str = "2007-12-03T10: 15: 30"; int afterConvCalendarDay = 03; Month afterConvCalendarMonth = Month.DECEMBER; int afterConvCalendarYear = 2007; LocalDateTime afterConvDate = nieuwe UseLocalDateTime (). GetLocalDateTimeUsingParseMethod (str); assertEquals (afterConvDate.getDayOfMonth (), afterConvCalendarDay); assertEquals (afterConvDate.getMonth (), afterConvCalendarMonth); assertEquals (afterConvDate.getYear (), afterConvCalendarYear); }

De Draad moet een geldige tijd vertegenwoordigen volgens java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME. Anders een ParseException zal tijdens runtime worden gegooid.

Bijvoorbeeld '2011-12-03‘Staat voor een geldige tekenreeksnotatie met 4 cijfers voor het jaar, 2 cijfers voor de maand voor een jaar en 2 cijfers voor de dag van de maand.

9. Conclusie

In deze korte tutorial hebben we verschillende hulpprogramma-methoden besproken voor het converteren van String objecten naar verschillende gegevenstypen die worden ondersteund in java.

De volledige broncode en alle codefragmenten voor dit artikel zijn beschikbaar op GitHub.


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