2012-10-24 3 views
2

J'ai une variable chaîne Résultat contenant une chaîne comme:Éclate une chaîne à tableau de chaînes

"<field1>text</field1><field2>text</field2> etc.." 

J'utiliser ce code pour essayer de le diviser:

Result = Result.replace("><", ">|<"); 

String[] Fields = Result.split("|"); 

Selon les nombreux sites Web, y compris celui-ci, cela devrait me donner un tableau comme celui-ci:

Fields[0] = "<field1>text</field2>" 
Fields[1] = "<field2>test</field2>" 
etc... 

Mais il me donne un tableau comme:

Fields(0) = "" 
Fields(1) = "<" 
Fields(2) = "f" 
Fields(3) = "i" 
Fields(4) = "e" 
etc.. 

Alors, qu'est-ce que je fais mal?

Répondre

2

Votre appel à split("|") est l'analyse | comme expression régulière ou qui lui-même sera réparti entre tous les personnages.

Vous pouvez extraire une expression régulière du caractère pour éviter que cela ne se produise, ou utiliser un caractère de séparation temporaire différent.

String[] fields = result.split("\\|"); 

ou

result = result.replace("><", ">~<"); 
String[] fields = result.split("~"); 
2

Essayez de faire

String[] fields = result.split("\\|"); 

Notez que je l'ai utilisé les noms de variables plus classiques (ils ne devraient pas commencer par lettres majuscules).

Rappelez-vous que les méthodes split prend une expression régulière comme argument, et | a une signification particulière dans le monde des expressions régulières, ce qui est la raison pour laquelle vous ne recevez pas ce que vous attendiez.


La documentation pertinente: