A karakterlánc konvertálása karakterek folyamává

1. Áttekintés

A Java 8 bemutatta a Folyam API, funkcionális műveletekkel a szekvenciák feldolgozásához. Ha többet szeretne róla megtudni, nézze meg ezt a cikket.

Ebben a rövid cikkben megtudjuk, hogyan lehet a Húr a Folyam egyetlen karakterből áll.

2. Konvertálás használata karakterek ()

A Húr Az API új módszerrel rendelkezik - karakterek () - amellyel megszerezhetjük a példányát Spatak a-tól Húr tárgy. Ez az egyszerű API visszaadja a IntFolyam a bemenetből Húr.

Egyszerűen fogalmazva, IntStream a. karaktereinek egész ábrázolását tartalmazza Húr tárgy:

String testString = "String"; IntStream intStream = testString.chars ();

Dolgozni lehet a karakterek egész ábrázolásával anélkül, hogy átalakítanánk őket karakterekké karakter egyenértékű. Ez kisebb teljesítménynövekedéshez vezethet, mivel nem kell minden egész számot a-ba jelölni karakter tárgy.

Ha azonban a karaktereket olvasásra akarjuk megjeleníteni, akkor az egész számokat emberbaráttá kell konvertálnunk karakter forma:

Stream karakterStream = testString.chars () .mapToObj (c -> (char) c);

3. Konvertálás használata codePoints ()

Alternatív megoldásként használhatjuk a codePoints () metódus a IntStream a-tól Húr. Az API használatának előnye, hogy az Unicode kiegészítő karakterek hatékonyan kezelhetők.

A kiegészítő karaktereket Unicode-helyettes párok képviselik, és egyetlen kódpontba egyesítik őket. Így helyesen tudjuk feldolgozni (és megjeleníteni) az összes Unicode szimbólumot:

IntStream intStream1 = testString.codePoints ();

A visszaküldöttet feltérképeznünk kell IntStream nak nek Folyam a felhasználók számára:

Stream characterStream2 = testString.codePoints (). MapToObj (c -> (char) c); 

4. Átalakítás a Folyam egyetlen karakterből áll Húrok

Eddig sikerült megszereznünk egy Folyam karakterek; mi van, ha szeretnénk egy Folyam egyetlen karakterből áll Húrs helyette?

A cikkben korábban leírtaknak megfelelően használjuk a codePoints () vagy karakterek () módszerek a IntStream hogy most feltérképezhetjük Folyam.

A leképezési folyamat magában foglalja az egész értékek konvertálását a megfelelő karakteregyenértékekké.

Akkor használhatjuk String.valueOf () vagy Karakter.toString () a karaktereket a-vá konvertálni Húr tárgy:

Stream stringStream = testString.codePoints () .mapToObj (c -> String.valueOf ((char) c));

5. Következtetés

Ebben a gyors bemutatóban megtanuljuk megszerezni a karakter a-tól Húr bármelyik hívással tiltakozzon codePoints () vagy karakterek () mód.

Ez lehetővé teszi számunkra, hogy teljes mértékben kihasználjuk a Folyam API - a karakterek kényelmes és hatékony manipulálása.

Mint mindig, a kódrészletek is megtalálhatók a GitHubon.