Insertion d'entiers séparés par un espace ds un arraylist

Insertion d'entiers séparés par un espace ds un arraylist - Java - Programmation

Marsh Posté le 13-03-2006 à 21:34:47    

Bonjour, je cherche à faire rentrer a l'utilisateur une chaine d'entier de la forme " 4 3 2 1". Je voudrais que java prenne un à un ses valeurs et les rangent  dans un arraylist (il faut donc qu'a chaque fois qu'il rencontre une espace il place la valeur précédente dans l'arraylist. Si vous pouviez m'aider, merci!

Reply

Marsh Posté le 13-03-2006 à 21:34:47   

Reply

Marsh Posté le 13-03-2006 à 21:40:59    

Sous Java 1.4 et Java 5 (mais pas Java 1.3 ou plus ancien), méthode String.split().
 
Et pourquoi le sortir sous forme d'ArrayList?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 13-03-2006 à 22:34:35    

en fait ca serait pour le comparer avec une autre arraylist... Je suis actuellement entrain de faire un TP qui oblige l'utilisation d'arraylist.  
A moins que le fait des les mettre dans un string rende le truc plus facile...

Reply

Marsh Posté le 13-03-2006 à 22:42:23    

C'est à dire comparer?
 
Tu dois comparer deux chaînes pour savoir si elles contiennent les mêmes entiers?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 13-03-2006 à 23:47:11    

exactement, je vérifie que l'entier a la position 1 dans arraylist1 est égal ou non avec l'entier a la position 1 dans arraylist2, ou bien simplement que  l'entier a la position1 dans arraylist1 est présent dans arraylist2, quel que soit sa position dans arraylist2.
 
Oui bon, c'est pas tres clair hein... T'as compris?

Reply

Marsh Posté le 14-03-2006 à 00:07:25    

J'ai bien compris, mais c'est con de faire la comparaison à la main alors que les listes ont une méthode .equals.
 
Accessoirement, si tu es sous Java 1.4 ou Java5, String.split te sort une List sur laquelle ça fonctionne aussi, donc tu peux faire un truc du genre
 

Code :
  1. Arrays.asList(string1.split("\\s" )).equals(Arrays.asList(string2.split("\\s" )))


(\s, dans les expressions rationnelles, est le caractère "matchant" un whitespace)
 
Avec string1 et string2 tes deux listes à comparer.
 
Exemple:

Code :
  1. import java.util.Arrays;
  2. class SplitTest {
  3.    public static void main(String[] args) {
  4.        if(SplitTest.cmp("6 3 7 0 8 5 4 1 9 2", "6 3 7 0 8 5 4 1 9 2" )){
  5.            System.out.println("Test 1 ok" );
  6.        }else{
  7.            System.out.println("Test 1 fail" );
  8.        }
  9.  
  10.        if(!SplitTest.cmp("5 6 4 1 7 0 3 2 9 8", "3 4 6 0 9 8 2 5 7 1" )){
  11.            System.out.println("Test 2 ok" );
  12.        }else{
  13.            System.out.println("Test 2 fail" );
  14.        }
  15.    }
  16.  
  17.    public static boolean cmp(String string1, String string2) {
  18.        return Arrays.asList(string1.split("\\s" )).equals(Arrays.asList(string2.split("\\s" )));
  19.    }
  20. }


Message édité par masklinn le 14-03-2006 à 00:08:04

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 14-03-2006 à 08:28:41    

ido- a écrit :

exactement, je vérifie que l'entier a la position 1 dans arraylist1 est égal ou non avec l'entier a la position 1 dans arraylist2, ou bien simplement que  l'entier a la position1 dans arraylist1 est présent dans arraylist2, quel que soit sa position dans arraylist2.
 
Oui bon, c'est pas tres clair hein... T'as compris?


 
C'est un problème d'interprétation de l'énoncé. Faudrai que tu nous le donnes.


Message édité par powel42 le 14-03-2006 à 08:53:07
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed