Hasítson egy karakterláncot Java-ban

1. Bemutatkozás

Hasítás Húrok nagyon gyakori művelet; Ez a gyors oktatóanyag az API-ra összpontosít, amelyet egyszerűen Java-ban használhatunk.

2. String.split ()

Kezdjük a törzskönyvtárral - a Húr osztály maga kínál a hasított() módszer - ami nagyon kényelmes és elegendő a legtöbb forgatókönyvhöz. Egyszerűen kettészeli az adott Húr a határoló alapján egy tömböt ad vissza Húrok.

Nézzünk meg néhány példát. Vesszővel történő felosztással kezdjük:

Karakterlánc [] split = "peter, james, thomas" .split (",");

Válasszunk egy szóközt:

String [] splitted = "autós jeep robogó" .split ("");

Vágjunk is egy ponttal:

Karakterlánc [] osztva = "192.168.1.178" .split ("\.")

Válasszunk most több karaktert - vesszőt, szóközt és kötőjelet a regex segítségével:

Karakterlánc [] hasítva = "b a, e, l.d u, n g" .split ("\ s + |, \ s * | \. \ s *"));

3. StringUtils.split ()

Az Apache közös lang csomagja a StringUtils osztály - amely nullszéfet tartalmaz hasított() metódus, amely a szóköz használatával hasít alapértelmezett határolóként:

String [] split = StringUtils.split ("autós jeep robogó");

Ezenkívül figyelmen kívül hagyja az extra szóközöket:

String [] split = StringUtils.split ("autós jeep robogó");

4. Splitter.split ()

Végül van egy szép Hasító folyékony API Guava-ban is:

List resultList = Splitter.on (',') .trimResults () .omitEmptyStrings () .splitToList ("autó, dzsip ,, robogó"); 

5. Felosztás és vágás

Néha adott Húr tartalmaz néhány elvezető, záró vagy extra szóközt a határoló körül. Lássuk, hogyan tudjuk kezelni a bemenet felosztását és az eredmények levágását egy mozdulattal.

Tegyük fel, hogy ez van bemenetként:

Karakterlánc bemenet = "autó, dzsip, robogó";

Az elválasztó előtti és / vagy utáni extra szóközök eltávolításához regex segítségével hajthatunk végre osztást és vágást:

Karakterlánc [] hasítva = input.trim (). Split ("\ s *, \ s *");

Itt, trim () A metódus eltávolítja a bevezető és a záró szóközt a beviteli karakterláncból, és a regex maga kezeli az elválasztó körüli extra helyeket.

Ugyanezt az eredményt érhetjük el a Java 8 használatával Folyam jellemzők:

String [] split = tömbök.stream (input.split (",")) .map (String :: trim) .toArray (String [] :: new);

6. Következtetés

String.split () általában elég. Összetettebb esetekben azonban használhatjuk az Apache commons-lang alapú fájljait StringUtils osztály, vagy a tiszta és rugalmas Guava API-k.

És mint mindig, a cikk kódja elérhető a GitHubon.