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.