Karakterlánc konvertálása nagybetűvé

1. Bemutatkozás

Ebben a rövid bemutatóban megmutatjuk, hogyan lehet a Húr a kis- és nagybetűk formátumához Java-ban.

Megmutatjuk az egyéni módszer megvalósításának különböző módjait, valamint azt is, hogy hogyan kell ezt harmadik fél könyvtárai segítségével megtenni.

2. Core Java megoldások

2.1. Iterálva a Húr Karakterek

A konverzió egyik módja Húr A cím nagybetűje az Húr.

Ehhez, amikor találunk egy elválasztót, nagybetűvel írjuk a következő karaktert. Ezt követően a többi karaktert kisbetűvé változtatjuk, amíg el nem érjük a következő szóelválasztót.

Használjunk szóközként szóközt és alkalmazzuk ezt a megoldást:

public static String convertToTitleCaseIteratingChars (String text) {if (text == null || text.isEmpty ()) {return text; } StringBuilder konvertálva = új StringBuilder (); boolean convertNext = true; mert (char ch: text.toCharArray ()) {if (Karakter.isSpaceChar (ch)) {convertNext = true; } else if (convertNext) {ch = Character.toTitleCase (ch); convertNext = hamis; } else {ch = Character.toLowerCase (ch); } konvertált.append (ch); } return convert.toString (); }

Mint láthatjuk, a módszert alkalmazzuk Karakter.toTitleCase az átalakítás elvégzésére, mivel ellenőrzi az a karakter az Unicode-ban.

Ha ezt a módszert a következő bemenetekkel teszteljük:

tHIS IS TITLE tHIS, IS TITLE

A következő várható eredményeket kapjuk:

Ez egy cím Ez, egy cím

2.2. Szavakra szakadás

Ennek másik megközelítése a Húr szavakká, konvertáljon minden szót cím- és nagybetűvé, végül ugyanazokat a elválasztókat használva egyesítse újra az összes szót.

Lássuk kódban, a szóköz elválasztásaként és a hasznosaként Folyam API:

privát statikus végső karakterlánc WORD_SEPARATOR = ""; public static String convertToTitleCaseSplitting (String text) {if (text == null || text.isEmpty ()) {return text; } return tömbök .stream (text.split (WORD_SEPARATOR)) .map (word -> word.isEmpty ()? word: Character.toTitleCase (word.charAt (0)) + word .substring (1) .toLowerCase ()) .collect (Collectors.joining (WORD_SEPARATOR)); }

Ugyanazokat a bemeneteket használva, mint korábban, pontosan ugyanazokat a kimeneteket kapjuk:

Ez egy cím Ez, egy cím

3. Az Apache Commons használata

Abban az esetben, ha nem akarjuk a saját egyéni módszerünket megvalósítani, használhatjuk az Apache Commons könyvtárat. A könyvtár beállításait a cikk ismerteti.

Ez biztosítja a WordUtils osztály, annak megvan kapitalizeFully () módszer amely pontosan azt csinálja, amit el akarunk érni:

public static String convertToTileCaseWordUtilsFull (String text) {return WordUtils.capitalizeFully (text); }

Mint láthatjuk, ezt nagyon könnyű használni, és ha ugyanazokkal a bemenetekkel teszteljük, mint korábban, ugyanazokat az eredményeket kapjuk:

Ez egy cím Ez, egy cím

Továbbá a WordUtils osztály biztosítja egy másik nagybetűs () módszer ami hasonlóan működik kapitalizeFully (), kivéve azt csak megváltoztatja az egyes szavak első karakterét. Ez azt jelenti, hogy nem alakítja át a többi karaktert kisbetűvé.

Lássuk, hogyan használhatjuk ezt:

public static String convertToTileCaseWordUtils (String text) {return WordUtils.capitalize (text); }

Most, ha ugyanazokkal a bemenetekkel teszteljük, mint korábban, akkor ezeket a különböző kimeneteket kapjuk:

EZ EGY TITLE EZ, TISZTÉL

4. Az ICU4J használata

Egy másik könyvtár, amelyet használhatunk, az ICU4J, amely Unicode és globalizációs támogatást nyújt.

Használatához hozzá kell adnunk ezt a függőséget a projektünkhöz:

 com.ibm.icu icu4j 61.1 

A legújabb verzió itt található.

Ez a könyvtár nagyon hasonló módon működik, mint a WordUtils, de megadhatjuk a BreakIterator megmondani a módszernek, hogyan akarjuk felosztani a Húr, és ezért milyen szavakat akarunk konvertálni nagybetűvé:

public static String convertToTitleCaseIcu4j (String text) {if (text == null || text.isEmpty ()) {return text; } return UCharacter.toTitleCase (szöveg, BreakIterator.getTitleInstance ()); }

Mint láthatjuk, van egy sajátosságuk BreakIterator címekkel dolgozni. Ha nem adunk meg semmit BreakIterator az Unicode alapértelmezett értékeit használja, amelyek ebben az esetben ugyanazokat az eredményeket generálják.

Ezenkívül vegye figyelembe, hogy ez a módszer lehetővé teszi a Területi beállítás a Húr konvertálunk, hogy lokálspecifikus konverziót hajtsunk végre.

5. Következtetés

Ebben a rövid cikkben bemutattuk, hogyan lehet a Húr a kis- és nagybetű formátumra Java-ban Először az egyéni megvalósításokat használtuk, majd ezek után megmutattuk, hogyan lehet ezt külső könyvtárak használatával megtenni.

Mint mindig, a példák teljes forráskódja elérhető a GitHubon.