Accueil > Forum > > > > Suppression des occurences
Suppression des occurences
dimanche 5 octobre 2008 à 02:15:30 |
Suppression des occurences

sarita199
|
 Bsr a tous, je suis bloquée dans ce code qui permet de supprimer les occurences(les doublants) d'un mot ou d'une phrase donnée, Exp: football donne fotbal Avez vous une suggestion!!! Scanner sc=new Scanner(System.in); public void AffectationTable()throws Exception { String T1[],T2[]; int i=0,j=0; int l=0,k=0; int length=10; T1=new String[length]; T2=new String[length]; String value; do { System.out.print("Introduire une phrase: "); value=sc.next(); T1[i]=value; i++; } while(!value.equals(".")); T2[k]=""; for(j=0;j<length;j++) { if(T1[j]!=T1[j+1]) T2[k]=T2[k]+T1[j]; k++; } for(j=0;j<i-1;j++) {System.out.println(T2[j]+"\t");} }
|
|
dimanche 5 octobre 2008 à 11:34:37 |
Re : Suppression des occurences

danimo
|
Réponse acceptée !
Bonjour,
Scanner sc= new Scanner(System.in); 37 publicvoid AffectationTable()throws Exception 38 { 39 String T1[],T2[]; 40 int i=0,j=0; 41 int l=0,k=0; 42 boolean x = false; 43 int isv = 0; 44 int length=10; 45 T1=new String[length]; 46 T2=new String[length]; 47 // length n'est pas le nombre de caracteres entrés 48 // mais le nombre d'éléments maxi des tableaux T1 et T2 49 // dans cet exemple 10 éléments numerotés 0 a 9 50 // Remarque : il vaudrait mieux nommer T1 et T2 t1 et t2 51 // un nom de class doit commencer par une majuscule(convention) 52 String value = ""; 53 54 for (i = 0; i < length; i++) 55 { 56 System.out.print("Introduire une phrase: "); 57 value=sc.nextLine(); // <<<<<<<<<<<<<<<<<<<<<<<< 58 if ((value.equals(".")) || (value.length() == 0)) 59 { 60 x = true; // <<<<<<<<<<<<<<<<<<<<<<<< 61 isv = i; // <<<<<<<<<<<<<<<<<<<<<<<< 62 break; 63 } 64 System.out.println("value = " + value); 65 x = false; // <<<<<<<<<<<<<<<<<<<<<<<< 66 T1[i]=value; 67 System.out.println("T1[" + i + "] = " + T1[i]); 68 // ici on peut rechercher les doubles, mais on garde ton idée de le faire 69 // dans la boucle suivante 70 // Remarque : ne pas oublier qu'il y a des mots qui ont des lettres 71 // en bouble (femme, bonnet, attraper...) mais on n'en tiendra pas compte 72 // ce n'est certainement pas le but de l'exercice sinon .... 73 } 74 75 T2[k]=""; 76 int lgvalue; 77 String car = ""; 78 String carsv = ""; 79 String nvalue = ""; 80 81 for(j=0;j<length;j++) 82 { 83 if (x) // <<<<<<<<<<<<<<<<<<<<<<<< 84 if (j == isv) // <<<<<<<<<<<<<<<<<<<<<<<< 85 break; // <<<<<<<<<<<<<<<<<<<<<<<< 86 value = T1[j]; 87 System.out.println("value2 = " + value); 88 lgvalue = value.length(); 89 for (k = 0; k < lgvalue; k++) 90 { 91 car = value.substring(k, k +1); 92 if (!car.equals(carsv)) 93 { 94 nvalue = nvalue + car; 95 carsv = car; 96 } 97 } 98 T2[j] = nvalue; 99 nvalue = ""; 100 } 101 int fini = length; 102 // pour ne pas lister les T2[j] = null, quitter les // des 2 lignes suivantes 103 //if (x) 104 //fini = isv; 105 for(j=0;j<fini;j++) 106 { 107 System.out.println("T2[" + j + "] = " + T2[j]); 108 }Cordialement.
Dan
|
|
dimanche 5 octobre 2008 à 11:58:02 |
Re : Suppression des occurences

Ombitious_Developper
|
Salut:
Ici, j'ai fait le découplage entre la procédure de suppression des doublons et d'extraction des jetons d'une chaine de caractères.
Supprimer les doublons dans un tableau de chaînes de caractères.
public String[] unique(String[] strings) { Set<String> set = new HashSet<String>(); for (String s : strings) { set.add(s); } return s.toArray(new String[0]); }
pour découper une chaîne de caractères:
public String[] tokenize(String string) { String[] tokens; if (string == null || string.trim().length() == 0) { tokens = new String[0]; } else { StringTokenizer st = new StringTokenizer(string); int count = st.countTokens(); List<String> list = new ArrayList<String>(); while (st.hasMoreTokens()) { list.add(st.nextToken()); } tokens = list.toArray(new String[0]); } return tokens; }
Pour faire les deux traitements ensemble:
public String[] tokenize(String string) { String[] tokens; if (string == null || string.trim().length() == 0) { tokens = new String[0]; } else { StringTokenizer st = new StringTokenizer(string); int count = st.countTokens(); Set<String> set = new HashSet<String>(); while (st.hasMoreTokens()) { set.add(st.nextToken()); } tokens = set.toArray(new String[0]); } return tokens; }
|
|
dimanche 5 octobre 2008 à 11:59:14 |
Re : Suppression des occurences

Ombitious_Developper
|
Salut:
Une correction:
public String[] unique(String[] strings) { Set<String> set = new HashSet<String>(); for (String s : strings) { set.add(s); } return set.toArray(new String[0]); }
|
|
dimanche 5 octobre 2008 à 12:00:27 |
Re : Suppression des occurences

Ombitious_Developper
|
Salut:
public String[] unique(String[] strings) { Set<String> set = new HashSet<String>(); for (String s : strings) { set.add(s); } return set.toArray(new String[0]); }
public String[] tokenize(String string) { String[] tokens; if (string == null || string.trim().length() == 0) { tokens = new String[0]; } else { StringTokenizer st = new StringTokenizer(string); List<String> list = new ArrayList<String>(); while (st.hasMoreTokens()) { list.add(st.nextToken()); } tokens = list.toArray(new String[0]); } return tokens; }
public String[] tokenize(String string) { String[] tokens; if (string == null || string.trim().length() == 0) { tokens = new String[0]; } else { StringTokenizer st = new StringTokenizer(string); Set<String> set = new HashSet<String>(); while (st.hasMoreTokens()) { set.add(st.nextToken()); } tokens = set.toArray(new String[0]); } return tokens; }
|
|
dimanche 5 octobre 2008 à 20:07:21 |
Re : Suppression des occurences

danimo
|
Salut,
Effectivement Ombitious_ mais c'est un exercice et j'ai choisi de rester le plus basic possible.
Cordialement.
...\ Dan /...
|
|
lundi 6 octobre 2008 à 01:54:24 |
Re : Suppression des occurences

sarita199
|
Merci pr vous Ombicieus_Developper et damino, les deux méthodes ça marche bien mais j'ai choisi la celle de damino par ce que je travail sur la notion des tableaus et pas des collections: damino j'ai modifié un petit peux ta méthode pour le rendre breve,mais j'ai une petite question pr toi pr koi on ne peux pas travailler sur une seul boucle???
public void AffectationTable1()throws Exception { int i=0,j=0,k=0; String chain = "",chain1= "",valchain = "",fini=""; boolean trouve = false; String value = ""; for (i = 0; i < length; i++) { System.out.print("Introduire une phrase: "); value=sc.nextLine(); if ((value.equals(".")) || (value.length() == 0)) { trouve = true; break;} T1[i]=value; } T2[k]=""; int val; for(j=0;j<length;j++) { if(j == i) //A koi sert il??? break; value = T1[j]; val = value.length(); for (k = 0; k < val; k++) { chain = value.substring(k, k +1); if (!chain.equals(chain1)) { valchain = valchain + chain; chain1 = chain; } } T2[j] = valchain; valchain = ""; } // System.out.println("Le nombre d'élément: "+j); for(int l=0;l<j;l++) { System.out.println(T2[l]); }
|
|
lundi 6 octobre 2008 à 15:36:25 |
Re : Suppression des occurences

danimo
|
Bonjour,
1°-Si on peut avec une seule boucle (je l'ai d'ailleurs indiqué en commentaire)
.... 66 T1[i]=value; 67 System.out.println("T1[" + i + "] = " + T1[i]); 68 // ici on peut rechercher les doubles, mais on garde ton idée de le faire 69 // dans la boucle suivante ....
2°- .... if(j == i) //A koi sert il??? break; ....
Ce n'est pas ce que j'ai écri mais if(j == isv) isv est la sauvegarde de i au moment où on a détecté la frappe de "." ou une intro sans frappe, donc la fin des intros. C'est pour éviter de lire T1 alors qu'il n'y à plus rien d'entré, mais aussi pour éviter une exception ici: val = value.length(); alors que val est null. Mais il ne faut faire ce test que si trouve est true :
if (trouve) if (j == i) // j'ai utilisé isv (sauvegarde de i) car on risque un jour de modifier i avant d'arriver ici break;
ou bien : if (trouve) { if (j == i) break; } ce qui est plus lisible
Cordialement
...\ Dan /...
|
|
lundi 6 octobre 2008 à 20:09:29 |
Re : Suppression des occurences
|
mardi 7 octobre 2008 à 01:14:48 |
Re : Suppression des occurences

danimo
|
Bonjour,
Les 2 cas: 1 2 import java.util.*; 3 public class Exercices2 4 { 5 Scanner sc= new Scanner(System.in); 6 public void AffectationTable() throws Exception 7 { 8 String T1[],T2[]; 9 int i=0,j=0; 10 int l=0,k=0; 11 boolean x = false ; 12 int isv = 0; 13 int length=10; 14 T1= new String[length]; 15 T2= new String[length]; 16 // dans cet exemple 10 éléments numerotés 0 a 9 17 // Remarque : il vaudrait mieux nommer T1 et T2 t1 et t2 18 // Seul un nom de class doit commencer par une majuscule(convention) 19 String value = "" ; 20 21 // avec 2 boucles (+ la boucle d'impression) 22 23 System.out.println( "-----------------------\n\nExemple avec 2 boucles\n\n" ); 24 25 for (i = 0; i < length; i++) 26 { 27 //nous allons entrer 3 "phrases" 1: aaabc 2: deeef et 3: ghiii 28 System.out.print( "Introduire une phrase: " ); 29 value=sc.nextLine(); 30 if ((value.equals( "." )) || (value.length() == 0)) 31 { 32 x = true ; 33 isv = i; 34 break ; 35 } 36 System.out.println( "value = " + value); 37 x = false ; 38 T1[i]=value; 39 System.out.println( "T1[" + i + "] = " + T1[i]); 40 // ici on peut rechercher les doubles. 41 } 42 43 T2[k]= "" ; 44 int lgvalue; 45 String car = "" ; 46 String carsv = "" ; 47 String nvalue = "" ; 48 49 for (j=0;j<length;j++) 50 { 51 if (x) 52 { 53 if (j == isv) 54 break ; 55 } 56 value = T1[j]; 57 System.out.println( "value2 = " + value); 58 lgvalue = value.length(); 59 for (k = 0; k < lgvalue; k++) 60 { 61 car = value.substring(k, k +1); 62 if (!car.equals(carsv)) 63 { 64 nvalue = nvalue + car; 65 carsv = car; 66 } 67 } 68 T2[j] = nvalue; 69 nvalue = "" ; 70 } 71 int fini = length; 72 // pour ne pas lister les T2[j] = null, quitter les // des 2 lignes suivantes 73 //if (x) 74 //fini = isv; 75 for (j=0;j<fini;j++) 76 { 77 System.out.println( "T2[" + j + "] = " + T2[j]); 78 } 79 80 // Avec une seule boucle + la boucle d'impression a la console 81 82 System.out.println( "-----------------------\n\nExemple avec une seule boucle\n\n" ); 83 84 T1= new String[length]; 85 T2= new String[length]; 86 87 i = 0; 88 j = 0; 89 k = 0; 90 x = false ; 91 carsv = "" ; 92 93 for (i = 0; i < length; i++) 94 { 95 // Nous entrons ci-dessous les memes mots aaabc deeef et ghiii et bie entendu 96 // nous devons obtenir le meme résultat 97 98 System.out.print( "Introduire une phrase: " ); 99 value=sc.nextLine(); 100 if ((!value.equals( "." )) && (value.length() != 0)) 101 { 102 System.out.println( "value = " + value); 103 T1[i]=value; 104 System.out.println( "T1[" + i + "] = " + T1[i]); 105 for (j=0;j<length;j++) 106 { 107 if (j == i +1) 108 break ; 109 value = T1[j]; 110 System.out.println( "value2 = " + value); 111 lgvalue = value.length(); 112 for (k = 0; k < lgvalue; k++) 113 { 114 car = value.substring(k, k +1); 115 if (!car.equals(carsv)) 116 { 117 nvalue = nvalue + car; 118 carsv = car; 119 } 120 } 121 T2[j] = nvalue; 122 nvalue = "" ; 123 } 124 } 125 else 126 break ; 127 } 128 129 for (j=0;j<fini;j++) 130 { 131 System.out.println( "T2[" + j + "] = " + T2[j]); 132 } 133 } 134 135 /* Nous obtenons: 136 ----------------------- 137 138 Exemple avec 2 boucles 139 140 141 Introduire une phrase: 1: aaabc 142 value = 1: aaabc 143 T1[0] = 1: aaabc 144 Introduire une phrase: 2: deeef 145 value = 2: deeef 146 T1[1] = 2: deeef 147 Introduire une phrase: 3" ghiii 148 value = 3" ghiii 149 T1[2] = 3" ghiii 150 Introduire une phrase: 151 value2 = 1: aaabc 152 value2 = 2: deeef 153 value2 = 3" ghiii 154 T2[0] = 1: abc 155 T2[1] = 2: def 156 T2[2] = 3" ghi 157 T2[3] = null 158 T2[4] = null 159 T2[5] = null 160 T2[6] = null 161 T2[7] = null 162 T2[8] = null 163 T2[9] = null 164 ----------------------- 165 166 Exemple avec une seule boucle 167 168 169 Introduire une phrase: 1: aaabc >>>>>>>>> Nous obtenons bien la meme chose 170 value = 1: aaabc 171 T1[0] = 1: aaabc 172 value2 = 1: aaabc 173 Introduire une phrase: 2: deeef 174 value = 2: deeef 175 T1[1] = 2: deeef 176 value2 = 1: aaabc 177 value2 = 2: deeef 178 Introduire une phrase: 3: ghiii 179 value = 3: ghiii 180 T1[2] = 3: ghiii 181 value2 = 1: aaabc 182 value2 = 2: deeef 183 value2 = 3: ghiii 184 Introduire une phrase: 185 T2[0] = 1: abc 186 T2[1] = 2: def 187 T2[2] = 3: ghi 188 T2[3] = null 189 T2[4] = null 190 T2[5] = null 191 T2[6] = null 192 T2[7] = null 193 T2[8] = null 194 T2[9] = null 195 196 ----jGRASP wedge2: exit code for process is 0. 197 ----jGRASP: operation complete. 198 */ 199 200 public static void main(String[] args) throws Exception 201 { 202 Exercices2 ex = new Exercices2(); 203 ex.AffectationTable(); 204 } 205 } ...\ Dan /...
|
|
Cette discussion est classée dans : string, t1, occurences, t2, value
Répondre à ce message
Sujets en rapport avec ce message
Ajouter deux String[] dans un troisième [ par corsica ]
Bonjour,je cherche à addition des tableaux de String dans un Troisième :String T1[] = {"a","b"};String T2[] = {"c","d"};Comment arriver à faire a peu
mes boutons jouent au cache cache [ par nili ]
1)je vous envoie le code source,lorsque j enleve la methode paint les boutons saffichent correctement.Sinon il faut appuyer a l endroit k il vont s af
req="INSERT INTO ... (plusieur fois a la fois) [ par amine1234Z ]
Bonjour a tous un autre jour et un autre problème bah cette fois si mon probléme c'est au niveau de l'insertion dans la base considérons qu'on a de
SWT: lien entre vues [ par Vlatiss ]
Bonjour à tous. J'ai réalisé un interface en utilisant la librairie swt de java. Tout fonctionne mais je souhaiterais amélioré un point. Pour simplifi
FLUX [ par johnjjj ]
bonjours je ne sais pas pourquoi ca code marche pas try{ StringReader sr=new StringReader(getT1()); String a=(String) sr.read();
eclipse swt browser : récupérer une value HTML marche pas [ par villoutj ]
Bonjour,J'ai un probleme ou je sèche lamentablement.Sur un site dédié mysql/php j'ai une base avec un compteur que je veux récupérer dans mon swt.brow
insertion des mots dans un tableau [ par nousa90 ]
bonjour tous le monde, voila mon travail mais j'ai une problème comment afficher les mots rechercher dans un tableau et comment rechercher d'autres m
affichage de données dans une JTable selon le choix fait dans une JCombobox [ par langagec08 ]
Bonjour , voila mon problème j'ai une JCombobox contenant les différents nom de manager, je veux que lorsque l'utilisateur fait un choix j'affiche tou
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|