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.