J'ai un probleme avec la procedure void

safatu Messages postés 14 Date d'inscription mercredi 20 janvier 2010 Statut Membre Dernière intervention 13 avril 2010 - 26 janv. 2010 à 00:10
safatu Messages postés 14 Date d'inscription mercredi 20 janvier 2010 Statut Membre Dernière intervention 13 avril 2010 - 27 janv. 2010 à 23:06
salut,
voici une classe que j'ai créé et j'ai besoin de l'appeler dans une autre classe
le probleme et que je ne sais pas quoi faire pour qu'elle soit visible par ma 2eme classe (j'ai pensé à "import classe" mais j'ai pas su comment le faire) en plus je voulais lui inséré une procedure pour l'appeler dans l'autre classe: compare.comparaison(.....);
mais ça ne marche, aparament il ya une faute que j'ai pas detecté
voici le programme

import java.io.*;
import java.util.regex.*;
// gestion d'expression régulières
public class compare {
public static void main(String[] args){
// une expression régulière modèle
String modèle1= "horrible[a]?[b]?[k]?";
// comparer un exemplaire au modèle
String exemplaire1="horribleba";
// une expression régulière modèle
String exemplaire2="horribles";
public static void comparaison (String modèle1,String exemplaire1,String exemplaire2 ){

if (Pattern.matches(modèle1,exemplaire1)){
System.out.println("["+exemplaire1 + "] correspond au modèle ["+modèle1+"]");
}else{
System.out.println("["+exemplaire1 + "] ne correspond pas au modèle ["+modèle1+"]");
}//if
if (Pattern.matches(modèle1,exemplaire2)){
System.out.println("["+exemplaire2 + "] correspond au modèle ["+modèle1+"]");
}else{
System.out.println("["+exemplaire2 + "] ne correspond pas au modèle ["+modèle1+"]");
}//if
}
//affiche
}}//classe

autre chose, si quelqu'un sais comment on peut compter le nombre d'un caractére précis dans une chaine de caractére????????
merci

8 réponses

Utilisateur anonyme
26 janv. 2010 à 04:13
Salut,

D'abord ton code:

Pourquoi veux-tu déclarer la méthode comparaison(...) dans la méthode main(...) ce n'est pas possible...

Déclares la en tant que méthode de la classe

Comme ceci:

[code=java] import java.io.*; 
   import java.util.regex.*; 
// gestion d'expression régulières 
    public class Compare
   { 
       public static void main(String[] args)
      { 

// une expression régulière modèle 
String modèle1= "horrible[a]?[b]?[k]?"; 
// comparer un exemplaire au modèle 
String exemplaire1="horribleba"; 
// une expression régulière modèle 
String exemplaire2="horribles"; 

// en ajoutant l'appel de la méthode comparaison(...) ici
    comparaison(modèle1, exemplaire1, exemplaire2);

      }
   
       public static void comparaison (String modèle1,String exemplaire1,String exemplaire2)
      { 
      
         if (Pattern.matches(modèle1,exemplaire1))
         { 
            System.out.println("["+exemplaire1 + "] correspond au modèle ["+modèle1+"]"); 
         }
         else
         { 
            System.out.println("["+exemplaire1 + "] ne correspond pas au modèle ["+modèle1+"]"); 
         }//if 
         if (Pattern.matches(modèle1,exemplaire2))
         { 
            System.out.println("["+exemplaire2 + "] correspond au modèle ["+modèle1+"]"); 
         }
         else
         { 
            System.out.println("["+exemplaire2 + "] ne correspond pas au modèle ["+modèle1+"]"); 
         }//if 
      }
   }//classe
/code

Ainsi tu pouras compiler, executer et voir si c'est correct.

Pour le comptage d'un caractère dans une chaine, j'utilise l'Api Regex qui existe depuis java 1.4 et plus.
On en parle plus tard quand je saurai quelle version java tu utilises.

Cordialement,






...\ Dan /...
0
Utilisateur anonyme
26 janv. 2010 à 19:01
RE,

Désolé pour les balises code java et taille, mais je pense que c'est quand même lisible...


...\ Dan /...
0
safatu Messages postés 14 Date d'inscription mercredi 20 janvier 2010 Statut Membre Dernière intervention 13 avril 2010
26 janv. 2010 à 22:27
merci merci merci
0
safatu Messages postés 14 Date d'inscription mercredi 20 janvier 2010 Statut Membre Dernière intervention 13 avril 2010
26 janv. 2010 à 23:38
Re,
Mais est ce que vous savez une fonction qqui vous permet de savoir le nombre de mot dans une chaine de caractere?????????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
27 janv. 2010 à 04:31
Oui mais comme indiqué plus haut, j'ai besoin de savoir quel java tu utilises...

...\ Dan /...
0
Utilisateur anonyme
27 janv. 2010 à 20:23
Salut,

 import java.util.regex.*;
 .........
 ..........
________________________________________________________________________

//Nombre de mots dans une chaine:

          String chaine = "Mot1 mot2 mot3 mot4, mot5 mot6 mot7 mot8 mot9 mot10 mot11 mot12.";
         int nbreMots = 0;
      
             // SPLIT
         // compilation de la regex
         Pattern patern = Pattern.compile(" +"); // le séparateur est un ou plusieurs  espaces (motif " +")
         // éclatement en sous-chaînes
         String[] sousChaine = patern.split(chaine);
         nbreMots = sousChaine.length;
            
        String info = "Il y a " + nbreMots + " mots dans la chaîne:\n" + """ + chaine + """ + "\n";
         javax.swing.JOptionPane.showMessageDialog(null,info);

//Et en plus les mots sont dans le tableau sousChaine[]


Nombre d'un caractère donné dans une chaine



 String chaine = "Comment on peut compter le nombre d'1 caractére précis dans une chaîne de caractères????????.";
int nbreDeFois = 0;

String motif = "a";  // l'un des motifs donnés en exemple ci-dessous

         Pattern pattern = Pattern.compile(motif);
         Matcher matcher = pattern.matcher(chaine);
         
         while(matcher.find())
         {
            nbreDeFois++;
         }
         String info = "\n"Le " + motif + """ + " existe " + nbreDeFois
               + " fois dans: \n"" + chaine + ""\n";
         
         javax.swing.JOptionPane.showMessageDialog(null,info);


// quelques exemples et remarques d'un caractère à compter:
/*
*String motif = "\\u00e8"; // comptage du nombre de è (e accent grave)
* ou bien
*String motif = "è"; // comptage du nombre de è (e accent grave)
*String motif = "?"; // comptage du nombre de ? >>>> erreur car ? est un meta caractere (voir l'API)
*String motif = "\?"; // comptage du nombre de ? >>>> erreur
*String motif = "\\?"; // comptage du nombre de ? >>>> OK
*String motif = "a"; // comptage du nombre de a
*String motif = " "; // comptage du nombre de blancs
*String motif = "c"; // comptage du nombre de c
*String motif = "C"; // comptage du nombre de C
*String motif = "z"; // comptage du nombre de z
*String motif = "."; // comptage du nombre total de caractères pas le nombre de "."
*C'est en fait avoir la longueur de la chaine comme ci-dessous
*System.out.println("Longueur de la chaine: " + chaine.length());
* le point étant un meta caractere remplacant n'importe quel caractére,
* pour compter le nombre de ".", il faut faire:
*String motif = "\\."; // comptage du nombre point(s).
*String motif = "î"; // comptage du nombre de î
*String motif = "'"; // comptage du nombre d'apostrophe(s)
*String motif = "1"; // comptage du nombre de 1
*/

Cordialement,

...\ Dan /...
0
safatu Messages postés 14 Date d'inscription mercredi 20 janvier 2010 Statut Membre Dernière intervention 13 avril 2010
27 janv. 2010 à 21:55
salut,
désolé de vous renvoyé la meme qustion mais j'ai fais quelque modification dans la classe comparaison en ajoutant un tableau parce que j'en ai besoin du cout ça ne marche pas
voici la nouvelle classe

import java.io.*;
import java.util.regex.*;
[color=green]// gestion d'expression régulières
public class compare
{
public static void main(String[] args)
{

// une expression régulière modèle
String modèle1= "horrible[a]?[b]?[k]?";
// comparer un exemplaire au modèle
String exemplaire1="horriblea";
// une expression régulière modèle
String tab[]=new String [3];

// il ya un probleme à ce niveau
comparaison(modèle1, exemplaire1, tab[]);
}

public static void comparaison (String modèle1,String exemplaire1,String tab[])
{

if (Pattern.matches(modèle1,exemplaire1))
{
tab[1]=exemplaire1;
}

}
}//classe/color

merci d'avance
0
safatu Messages postés 14 Date d'inscription mercredi 20 janvier 2010 Statut Membre Dernière intervention 13 avril 2010
27 janv. 2010 à 23:06
re
c bon, j'ai trouvé le probleme
désolé pour le dérangement, c'été trop débile!!!!!
0