Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1069 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Help, j'en peux plus : string.split

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Help, j'en peux plus : string.split

n°1073168
freekk91
pouf c'est tout...
Posté le 05-05-2005 à 19:26:07  profilanswer
 

Bonsoir, j'en ai marre, j'ai lu plein de doc sur le net, les tutoriels de sun, les recherches sur les forums, etc...
mais je pete un cable et mon cerveau ralentit.
 
Je fais appel à votre expérience, forcément plus grande que la mienne en java.
 
J'ai une string de la forme "Point(10, 15)"
je veux récupérer les nombres 10 et 15 comme entiers.
 
Le mieux que j'ai réussi à produire :  
 
 String[] separation = value.split("Point\\(|,|\\)" );
  int x = Integer.parseInt(separation[1]);
  int y = Integer.parseInt(separation[2]);
  return new Point(x,y);
 
 
avec value, une string de la forme décrite plus haut.
Dans ce cas précis, la récupération du 'y' foire, vu que la string est " 15", il y a un blanc devant le nombre et il aime pas.
 
En fait avec mon split actuel, je récupère une chaine vide "" comme premiere case de mon split, c'est assez dégueux je trouve. J'aimerai bien que quelqu'un m'explique comment arriver à un meilleur résultat.
 
Merci aux âmes charitables qui auront pitié de moi :jap:

mood
Publicité
Posté le 05-05-2005 à 19:26:07  profilanswer
 

n°1073311
Nicolas_75
Posté le 05-05-2005 à 20:48:36  profilanswer
 


Réponse partielle : myString.trim() doit permettre d'enlever les espaces dans myString.
 
Nicolas

n°1073339
Nicolas_75
Posté le 05-05-2005 à 21:36:00  profilanswer
 

Le plus propre est peut-être d'utiliser les expressions régulières.
 
Un exemple ci-dessous, avec 2 méthodes.
Tutoriel : cf. FAQ de ce site
 
(EDIT)

Code :
  1. import java.util.regex.*;
  2. public class Exemple027_regexp {
  3.    
  4.     public static void getTwoIntFromString1(String value) {
  5.         System.out.print("méthode 1 : "+value+" -> " );
  6.         Pattern p = Pattern.compile("[0-9]+" );
  7.         Matcher m = p.matcher(value);
  8.         if (! m.find()) {} // pb à traiter, par exemple en levant une exception
  9.         int x = Integer.parseInt(m.group());
  10.         System.out.print(x+" et " );
  11.         if (! m.find()) {} // pb à traiter, par exemple en levant une exception
  12.         int y = Integer.parseInt(m.group());
  13.         System.out.println(y);
  14.     }
  15.    
  16.     public static void getTwoIntFromString2(String value) {
  17.         System.out.print("méthode 2 : "+value+" -> " );
  18.         String[] res = value.split("\\D+",0); // \D = non-digit
  19.         int x = Integer.parseInt(res[1]); // res[0] est une chaîne vide
  20.         System.out.print(x+" et " );
  21.         int y = Integer.parseInt(res[2]);
  22.         System.out.println(y);
  23.     }
  24.    
  25.     public static void main(String[] args) {
  26.         getTwoIntFromString1("Point(10, 15)" );
  27.         getTwoIntFromString2("Point(10, 15)" );
  28.     }
  29.            
  30. }


Sortie :

méthode 1 : Point(10, 15) -> 10 et 15
méthode 2 : Point(10, 15) -> 10 et 15


Message édité par Nicolas_75 le 05-05-2005 à 22:33:34
n°1073663
Cherrytree
cn=?
Posté le 06-05-2005 à 11:07:44  profilanswer
 

J'ai un peu plus simple :
 

Code :
  1. public Point getPoint(String s) {
  2.     Pattern p = Pattern.compile("Point\\(([0-9]+),\\s*([0-9]+)\\)" );
  3.     Matcher m = p.matcher(s);
  4.     if (m.matches()) {
  5.         int x = Integer.parseInt(m.group(1));
  6.         int y = Integer.parseInt(m.group(2));
  7.         return new Point(x, y);
  8.     } else {
  9.         return null;
  10.     }
  11. }


Message édité par Cherrytree le 06-05-2005 à 11:10:45

---------------
Le site de ma maman

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Help, j'en peux plus : string.split

 

Sujets relatifs
transformer un string "boubou" en Boubou"[TCL] Utilisation de socket en TCL : HELP ! ! !
converssion entier -> string avec "Integer'image"ACCESS: Requete suppression HELP!
[JAVA] remplacer * par % dans un String?help alléger mon code
Problème shell d'un débutant HELP!commentaire du formulaire absent !! je vais y arriver !! help !!!!!!!!
Formulaire : 2 fois l'email et pas le commentaire !!!!!! HELP !!!Pas facile d'avoir de l'aide ici !!!!!! HELP ! Prob.formulaire !
Plus de sujets relatifs à : Help, j'en peux plus : string.split


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR