Karakterlánc konvertálás leképezése Java-ban

1. Áttekintés

Ebben az oktatóanyagban az a konverzióra fogunk összpontosítani Térkép a Húr és fordítva.

Először meglátjuk, hogyan lehet ezeket elérni az alapvető Java módszerekkel, majd ezt követően néhány harmadik fél könyvtárát használjuk.

2. Alapvető Térkép Példa

Valamennyi példában ugyanazt fogjuk használni Térkép végrehajtás:

Térkép szavakByKey = új HashMap (); wordsByKey.put (1, "egy"); wordsByKey.put (2, "kettő"); wordsByKey.put (3, "három"); wordsByKey.put (4, "négy");

3. Átalakítás a Térkép a Húr iterálással

Ismételjük meg az összes kulcsot Térkép és mindegyikükhöz csatolja a kulcs-érték kombinációt az eredményünkhöz StringBuilder tárgy.

Formázás céljából az eredményt göndör zárójelek közé tehetjük:

public String convertWithIteration (Térképtérkép) {StringBuilder mapAsString = new StringBuilder ("{"); mert (Egész szám: map.keySet ()) {mapAsString.append (kulcs + "=" + térkép.get (kulcs) + ","); } mapAsString.delete (mapAsString.length () - 2, mapAsString.length ()). addend ("}"); return mapAsString.toString (); }

Annak ellenőrzésére, hogy átalakítottuk-e Térkép futtassuk a következő tesztet:

@Test public void givenMap_WhenUsingIteration_ThenResultingStringIsCorrect () {String mapAsString = MapToString.convertWithIteration (wordsByKey); Assert.assertEquals ("{1 = egy, 2 = kettő, 3 = három, 4 = négy}", mapAsString); }

4. Átalakítás a Térkép a Húr Java adatfolyamok használata

Az adatfolyamok konverziójának végrehajtásához először létre kell hoznunk egy adatfolyamot a rendelkezésre álló adatokból Térkép kulcsok.

Másodszor, minden kulcsot feltérképezünk egy ember által olvashatóvá Húr.

Végül csatlakozunk ezekhez az értékekhez, és a kényelem érdekében néhány formázási szabályt adunk hozzá a Collectors.joining () módszer:

public String convertWithStream (Térképtérkép) {String mapAsString = map.keySet (). stream () .map (kulcs -> kulcs + "=" + map.get (kulcs)) .collect (Collectors.joining (",", "{", "}")); return mapAsString; }

5. Átalakítás a Térkép a Húr Guava használatával

Vegyük fel Guavát a projektünkbe, és nézzük meg, hogyan érhetjük el az átalakítást egyetlen kódsorban:

 com.google.guava guava 27.0.1-jre 

Az átalakítás elvégzése a Guava-val Asztalos osztályban meg kell határoznunk egy elválasztót a különféle között Térkép bejegyzések és elválasztó a kulcsok és értékek között:

public String convertWithGuava (Térképtérkép) {return Joiner.on (","). withKeyValueSeparator ("="). join (térkép); }

6. Átalakítás a Térkép a Húr Az Apache Commons használatával

Az Apache Commons használatához először adjuk hozzá a következő függőséget:

 org.apache.commons commons-gyűjtemények4 4.2 

A csatlakozás nagyon egyszerű - csak meg kell hívnunk a StringUtils.csatlakozzon módszer:

public String convertWithApache (Térképtérkép) {return StringUtils.join (térkép); }

Egy külön említést érdemel a debugPrint az Apache Commons-ban elérhető módszer. Nagyon hasznos hibakeresési célokra.

Amikor felhívjuk:

MapUtils.debugPrint (System.out, "Map as String", wordsByKey);

A hibakeresési szöveget a konzolra írjuk:

Térkép mint karakterlánc = {1 = egy java.lang. 2. húr = két java.lang. 3. húr = három java.lang.String 4 = négy java.lang.String} java.util.HashMap

7. Átalakítás a Húr a Térkép Az adatfolyamok használata

A konverzió végrehajtása a Húr a Térkép, definiáljuk, hol kell felosztani, és hogyan kell kibontani a kulcsokat és értékeket:

public Map convertWithStream (String mapAsString) {Map map = Arrays.stream (mapAsString.split (",")) .map (entry -> entry.split ("=")) .collect (Collectors.toMap (entry -> entry) [0], bejegyzés -> bejegyzés [1])); visszatérő térkép; }

8. Átalakítás a Húr a Térkép Guava használatával

A fentiek kompaktabb változata az, hogy Guava-ra támaszkodik, hogy egyvonalas folyamatban végezze el a felosztást és az átalakítást számunkra:

public Map convertWithGuava (String mapAsString) {return Splitter.on (','). withKeyValueSeparator ('='). split (mapAsString); }

9. Következtetés

Ebben az oktatóanyagban láttuk, hogyan lehet a Térkép a Húr és fordítva mind az alapvető Java módszerek, mind a harmadik fél könyvtárai segítségével.

Mindezen példák megvalósítása megtalálható a GitHub-on.