Je travaille actuellement sur un programme pour lequel j'aurais besoin de découper un string en plusieurs parties.
Par exemple, lorsque le programme produit ceci: "Nom, Prénom",1980.45,580.93,0.00,188.3B,"Ville"
Il me faudrait le découper en 6 parties:
"Nom, Prénom"
1980.45
580.93
0.00
188.3B
"Ville"
Même après avoir consulté l'API java http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#split(java.lang.String) je ne m'en sors pas
Avez-vous une idée?
Merci d'avance pour l'aide que vous pourrez m'apporter,
Le fait est que j'ai essayé de plusieurs manières mais n'ayant jamais utilisé le 'split' dans le passé je ne comprends pas très bien comment l'incorporer dans mon programme.
Puis je me suis dit que comme c'est un Array et pas un ArrayList il fallait attribuer valeur séparément à chaque case de l'array avec un while loop:
String url = "Nom, Prénom",1980.45,580.93,0.00,188.3B,"Ville"
String values[] = new String[i];
int i = 0;
while(i<6)
{
values[i] = url.split(",");
i++;
}
Mais cela ne s'est pas avéré concluant.
Selon moi il y aura également un second problème avec cette méthode 'split': actuellement j'essaye de couper quand il y a une virgule mais la partie "Nom, Prénom" a une virgule mais doit rester un tout pour atteindre le but de mon programme (cette virgule entre Prénom et Nom peut ne pas être présente puisque le String url est créé dynamiquement).
Salut, déjà il y a un truc pas clair pour moi pourquoi les " ne se trouve pas uniquement au debut et a la fin de la chaîne de caractère? 2ieme comment ce fait il qu'il n'y pas de ; a la fin de la 1ere ligne?
Ensuite tu veut faire un splitt en spécifiant un caractère qui dans le cas nom prénom n'est pas un séparateur, ici a part reconstituer après coup le nom prénom, une solution est de choisir un autre séparateur.
Et j'aimerais bien voir ton resultat, car là ton code ne peut pas compiler!! C'est bien du java?!
Utilise-tu un IDE?
C'est exactement comme ça que la fonction split fonctionne! Elle renvoit un tableau de String, et pas un String à la fois . Ensuite, première des choses: comme url est un String, il faudrait pas oublier d'échapper les guillemets et de mettre le point-virgule (Ou tout simplement enlever les guillements, si j'ai bien compris ce que tu faisais. Dans un object/variable String, tout, chiffres ou lettres, est un caractères, donc dois être entre guillemets! Par contre, si tu comptais les garder, faudra opter pour la formule avec les backslash) Si tu veux essayer la différence:
String url = "\"Nom, Prénom\",1980.45,580.93,0.00,188.3B,\"Ville\"";
String url2 = "Nom, Prénom,1980.45,580.93,0.00,188.3B,Ville";
String values[] = url.split(",");
String values2[] = url2.split(",");
// Fait pas attention à la fonction si tu ne la connais pas, c'est juste pour tout afficher simplement
for (String i : values)
{
System.out.println(i);
}
for (String i : values)
{
System.out.println(i);
}
Rendu ici, comme ninlock l'a précisé, il faudra te choisir un autre séparateur si tu veux que le nom et le prénom soit gardé comme tel. Perso, j'aime bien le point-virgule, c'est classe et simple Mais tu peux prendre n'importe quoi si tu veux!
String url = "Nom, Prénom;1980.45;580.93;0.00;188.3B,Ville";
// Je déconne, mais ça marche
String url2 = "Nom, Prénom_LEBÔSOLEIL_1980.45_LEBÔSOLEIL_580.93_LEBÔSOLEIL_0.00_LEBÔSOLEIL_188.3B_LEBÔSOLEIL_Ville";
String[] value = url.split(";");
String[] value2 = url.split("_LEBÔSOLEIL_");
Comme la plus grabnde parti de ta question à été éclairci par @Silvestro, et que apparemment tu ne peut pas choisir le séparateur, tu va devoir reconstituer le nom et prénom ensemble.
Le problème c'est que les 2 URLs que tu as fournies ne contiennent pas de virgules, dont tu auras beau essayer de les spliter en utilisant comme séparateur ',' le résultat sera le même qu'au départ.
⚙️ Une solution simple règle le problème ; une solution compliquée en crée un nouveau.
En fait le problème venait juste de la façon dont tu déclarais tes chaînes de caractères, parce-que si tu veux déclarer une chaîne str et lui attribuer la valeur "Bonjour" tu feras
String str = "Bonjour";
//et non
String str = Bonjour;
Bref si c'est ce que te retourne Eclipse alors c'est bon, tu stockes la valeur retournée par la méthode readURL dans un String et tu la splites dans un tableau.
Code:
String str = "\"Nom, Prénom\",1980.45,580.93,0.00,188.3B,\"Ville\"";
String tab[] = str.split(",");
for (String st : tab)
System.out.println(st);
Remplaces juste la chaîne par ta méthode, chez moi ça ne fonctionne pas il ne trouve pas la classe URLReader ?!
⚙️ Une solution simple règle le problème ; une solution compliquée en crée un nouveau.
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Pas d'aide concernant le code par MP, le forum est là pour ça :)