236 votes

Chaîne de caractères Android

J'ai une chaîne de caractères appelée CurrentString et est dans la forme de quelque chose comme cela "Fruit: they taste good".
Je souhaite partager l' CurrentString à l'aide de l' : comme délimiteur.
Ainsi, le mot "Fruit" sera partagé dans sa propre chaîne et "they taste good" sera une autre chaîne.
Et puis je voudrais simplement utiliser SetText() de 2 TextViews pour afficher cette chaîne.

Quelle serait la meilleure façon d'aborder cette question?

638voto

Cristian Points 92147
 String[] separated = CurrentString.split(":");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"
 

Vous souhaiterez peut-être supprimer l'espace à la deuxième chaîne:

 separated[1] = separated[1].trim();
 

Il y a d'autres façons de le faire. Par exemple, vous pouvez utiliser la classe StringTokenizer (à partir de java.util ):

 StringTokenizer tokens = new StringTokenizer(CurrentString, ":");
String first = tokens.nextToken();// this will contain "Fruit"
String second = tokens.nextToken();// this will contain " they taste good"
// in the case above I assumed the string has always that syntax (foo: bar)
// but you may want to check if there are tokens or not using the hasMoreTokens method
 

87voto

Silas Greenback Points 432

La méthode .split fonctionnera, mais elle utilise des expressions régulières. Dans cet exemple, ce serait (voler de Cristian):

 String[] separated = CurrentString.split("\\:");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"
 

En outre, cela vient de: partage Android ne fonctionne pas correctement

54voto

mahasam Points 177

android split string par virgule

 String data = "1,Diego Maradona,Footballer,Argentina";
    String[] items = data.split(",");
    for (String item : items)
    {
        System.out.println("item = " + item);
    }
 

26voto

Faakhir Points 346
     String s = "having Community Portal|Help Desk|Local Embassy|Reference Desk|Site News";
     StringTokenizer st = new StringTokenizer(s, "|");
        String community = st.nextToken();
        String helpDesk = st.nextToken(); 
        String localEmbassy = st.nextToken();
        String referenceDesk = st.nextToken();
        String siteNews = st.nextToken();

22voto

gardarh Points 905

Vous pouvez également envisager de le Android spécifique TextUtils.split() de la méthode.

La différence entre TextUtils.split() et String.split() est documenté avec TextUtils.split():

Chaîne de caractères.split() renvoie ["] quand la chaîne à découper se vide. Ceci renvoie à []. Cela ne supprime pas toutes les cordes à vide de la raison.

Je trouve que c'est un plus un comportement naturel. En essence TextUtils.split() est juste un wrapper fin de Chaîne.split(), plus particulièrement en lien avec le vide-chaîne de cas. Le code de la méthode est en fait assez simple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X