Array til strengkonverteringer

1. Oversigt

I denne korte vejledning skal vi se på at konvertere en række strenge eller heltal til en streng og tilbage igen.

Vi kan opnå dette med vanilje Java- og Java-hjælpeklasser fra almindeligt anvendte biblioteker.

2. Konverter Array til String

Nogle gange er vi nødt til at konvertere en række strenge eller heltal til en streng, men desværre er der ingen direkte metode til at udføre denne konvertering.

Standardimplementeringen af toString () metode på en matrix returnerer noget lignende Ljava.lang.String; @ 74a10858 som kun informerer os om objektets type og hash-kode.

Men den java.util.Arrays utility class understøtter array- og strengmanipulation, inklusive a toString () metode til arrays.

Arrays.toString () returnerer en streng med indholdet af inputmatrixen. Den nye streng, der oprettes, er en kommasepareret liste over arrayets elementer, omgivet af firkantede parenteser (“[]”):

String [] strArray = {"one", "two", "three"}; String joinedString = Arrays.toString (strArray); assertEquals ("[en, to, tre]", joinedString);
int [] intArray = {1,2,3,4,5}; joinedString = Arrays.toString (intArray); assertEquals ("[1, 2, 3, 4, 5]", joinedString);

Og selvom det er dejligt, at Arrays.toString (int []) metode knap denne opgave for os så pænt op, lad os sammenligne den med forskellige metoder, som vi selv kan implementere.

2.1. StringBuilder.append ()

For at starte, lad os se på, hvordan du gør denne konvertering med StringBuilder.append ():

String [] strArray = {"Konverter", "Array", "Med", "Java"}; StringBuilder stringBuilder = ny StringBuilder (); for (int i = 0; i <strArray.length; i ++) {stringBuilder.append (strArray [i]); } String joinedString = stringBuilder.toString (); assertEquals ("ConvertArrayWithJava", joinedString);

Derudover kan vi bruge den samme tilgang til at konvertere en række heltal, men i stedet kalde Integer.valueOf (intArray [i]) når du tilføjer til vores StringBuilder.

2.2. Java Streams API

Java 8 og derover tilbyder String.join () metode, der producerer en ny streng ved at forbinde elementer og adskille dem med den angivne afgrænser, i vores tilfælde bare tom streng:

String joinedString = String.join ("", new String [] {"Convert", "With", "Java", "Streams"}); assertEquals ("ConvertWithJavaStreams", joinedString);

Derudover kan vi bruge Collectors.joining () metode fra Java Streams API, der forbinder strenge fra Strøm i samme rækkefølge som dets kildearray:

String joinedString = Arrays .stream (new String [] {"Convert", "With", "Java", "Streams"}) .collect (Collectors.joining ()); assertEquals ("ConvertWithJavaStreams", joinedString);

2.3. StringUtils.join ()

Og Apache Commons Lang må aldrig udelades af opgaver som disse.

Det StringUtils klasse har flere StringUtils.join () metoder, der kan bruges til at ændre en række strenge til en enkelt streng:

String joinedString = StringUtils.join (ny streng [] {"Konverter", "Med", "Apache", "Commons"}); assertEquals ("ConvertWithApacheCommons", joinedString);

2.4. Joiner.join ()

Og ikke at overgå Guava rummer det samme med dets Snedker klasse. Det Snedker klasse tilbyder en flydende API og giver en håndfuld hjælpemetoder til at slutte sig til data.

For eksempel kan vi tilføje en afgrænser eller springe nullværdier over:

String joinedString = Joiner.on ("") .skipNulls () .join (ny streng [] {"Convert", "With", "Guava", null}); assertEquals ("ConvertWithGuava", joinedString);

3. Konverter streng til Array of Strings

På samme måde er vi undertiden nødt til at opdele en streng i en matrix, der indeholder et delmængde af inputstreng opdelt af den specificerede afgrænser, lad os se, hvordan vi også kan gøre dette.

3.1. String.split ()

Lad os først starte med at opdele det hvide område ved hjælp af String.split () metode uden en afgrænser:

Streng [] strArray = "loremipsum" .split ("");

Hvilket producerer:

["Lorem ipsum"]

3.2. StringUtils.split ()

For det andet, lad os se igen på StringUtils klasse fra Apache's Commons Lang-bibliotek.

Blandt mange nul-sikre metoder på strengobjekter kan vi finde StringUtils.split (). Som standard antages det, at der er en mellemrumsstørrelse for mellemrum:

Streng [] splittet = StringUtils.split ("lorem ipsum dolor sit amet");

Hvilket resulterer i:

["lorem", "ipsum", "dolor", "sit", "amet"]

Men vi kan også give en afgrænsning, hvis vi ønsker det.

3.3. Splitter.split ()

Endelig kan vi også bruge Guava med sin Splitter flydende API:

Liste resultatListe = Splitter.on ('') .trimResults () .omitEmptyStrings () .splitToList ("lorem ipsum dolor sit amet"); String [] strArray = resultList.toArray (ny streng [0]);

Hvilket genererer:

["lorem", "ipsum", "dolor", "sit", "amet"]

4. Konklusion

I denne artikel illustrerede vi, hvordan man konverterer en matrix til streng og tilbage igen ved hjælp af centrale Java og populære hjælpebiblioteker.

Selvfølgelig kan implementeringen af ​​alle disse eksempler og kodestykker findes på GitHub.


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