0
votes

Comment diviser une chaîne sur # * # *

J'ai une chaîne code> avec la valeur suivante:

B/W 0-2 hours of bus start time

B/W 2-9 hours of bus start time

Above 9 hours of bus start time

0%

50%

90%


5 commentaires

Quel code avez-vous essayé jusqu'à présent?


Déterminez d'abord un ensemble de délimètres possibles. # * # * n'est pas un délimiteur valide dans votre cas, il n'y a pas d'apparence à votre texte dans votre texte.


@J_D en java iam essayer


@Nmk j'ai posté une réponse mise à jour, avec votre sortie requise. vérifie ça.


@Nmk pourquoi avez-vous supprimé le texte de la question? L'une des réponses fournies a-t-elle fonctionné pour vous?


5 Réponses :


2
votes

diviser votre chaîne comme ceci:

  String mStr = "B/W 0-2 hours of bus start time#*#B/W 2-9 hours of bus start time##Above 9 hours of bus start time--0%##50%##*90%";
        Log.e("mStr==", "===" + mStr);

        String[] pickList = mStr.split("#\\*#|##|--|##\\*|\\*");

        Log.e("pickList==", "===" + pickList.length);

        for (int i = 0; i < pickList.length; i++) {
            Log.e("pickList==", "===" + pickList[i]);
        }


8 commentaires

Cela ne fonctionnera pas, car il n'y a que 1 apparition de # * # , qui le divisera en 2 parties seulement


Cela ne produit pas les résultats attendus.


@J_D attend, je mettais ma réponse.


@Nmk Vérifiez ma réponse mise à jour. C'est maintenant montrant la sortie attendue que vous voulez


@Nmk Si vous trouvez ma réponse utile, vous pouvez accepter la réponse de TIS. D'autres devs peuvent également obtenir de l'aide de cela.


Désolé de ne pas définir mon problème correctement, ma production requise devrait être comme celle-ci: B / W 0-2 Heures d'heure de début de bus 0% B / W 2-9 Heures de début du bus 50% plus de 9 heures d'heure de début du bus 90% Quels moments IAM Obtenez des chaînes supplémentaires aussi, je veux les gérer et je devrais afficher la vue de texte


@Nmk, ça va. Mais ma réponse est parfaite avec votre question posée. Donc son utile aux autres. :) Tu ne le crois pas? :)


définitivement @bhoomika



0
votes

Essayez ce qui suit -

yourString.split = yourString.split.replace("*","");
yourString.split = yourString.split.replace("--","");
String[] pickList = yourString.split("##");


0 commentaires

0
votes

Votre chaîne doit contenir les mêmes délimiteurs. Si vous avez des délimiteurs différents, vous devez prédire quels délimiteurs peuvent être là et transmettre ces délimiteurs comme des arguments à la scission () séparés par | signe.

tel que, pour utiliser # et * signer comme des délimiteurs, vous devez écrire comme ceci: stringvariable.split ("\ # | \ *");


0 commentaires

0
votes

Vous pouvez utiliser un seul Alternance correspondant à 1+ répétition de # * code> ou correspondre - code> xxx pré>

voir un Démo Regex | Java Demo P>

Par exemple: P>

B/W 0-2 hours of bus start time
B/W 2-9 hours of bus start time
Above 9 hours of bus start time
0%
50%
90%


0 commentaires

0
votes

chaîne finalevalue = ""; String mystring = "B / W 0-2 heures d'heure de début du bus # * # b / w 2-9 heures de temps de début de bus # # plus de 9 heures de début de bus - 0% # # 50% # # * 90% "; xxx

}

Out Met:

  • b / w 0-2 heures d'heure de début du bus -> 0%
  • B / W 2-9 Heures de début du bus -> 50%
  • au-dessus de 9 heures de début du bus -> 90%

0 commentaires