String gesplitst met stringtokenizer

Ik heb een string die lijkt

"AB-123,XYZ-456,AB-11,AB-3423,XYZ-1"

Ik wil alle AB's in één reeks en XYZ in een andere scheiden. Ik kan het doen met behulp van stringtokenizer en de AB's en XYZ matchen en er nieuwe strings van maken, is er een betere manier om dit te bereiken.

Bedankt.

0
een betere manier in welke zin? Werkt je huidige manier niet, inefficiënt, moeilijk te lezen, etc.?
toegevoegd de auteur Dmitry B., de bron
Ik ben ervan overtuigd dat het werkt, ik denk dat er een betere manier is om de snaren te splitsen op basis van een reg-ex. Ik weet niet eens of dat mogelijk is.
toegevoegd de auteur Shah, de bron

1 antwoord

Ik zou persoonlijk de twee taken splitsen:

  • Splits de enkele string in een lijst/array/whatever
  • Doorloop de resultaten en voeg de tekenreeksen toe aan de ene resultatenlijst of de andere

Dit zijn logisch onafhankelijke stappen en ik denk dat uw code duidelijker zal zijn als u ze afzonderlijk behandelt. Je moet ook overwegen wat je wilt gebeuren als een van de onderdelen niet begint met AB of XYZ.

Voor het splitsende deel kunt u String.split of Guava 's Splitter klasse.

3
toegevoegd
@chance: Nou, als je op verschillende plaatsen op dezelfde manier gaat splitsen, zou ik zeker Splitter gebruiken. Voor een eenmalig bericht is String.split in orde ...
toegevoegd de auteur Jon Skeet, de bron
String.split en Guava'splitter, wat is beter? Ik bedoel eenvoudiger te gebruiken met een mooiere codestijl?
toegevoegd de auteur chance, de bron