Petite question sur le String en java

Résolu
artragis Messages postés 510 Statut Membre -  
Marco la baraque Messages postés 1030 Statut Contributeur -
Bonjour, Je débute (pour ceux qui ont déjà vu mes question, je sais je me répète) et, dans un programme, je désire comparer 2 caractères.
Je regarde la documentation Java en anglais, et deux methodes me donnent un tel résultat : CompareTo() et CompareToIgnoreCase()
mon but à moi est de comparer deux caractère mais sans tenir compte des majuscules ex "e"="E" de même que é=E enfon vous voyez?
est-ce que ces methodes font cela, en effet la comparaison est lexicographique (lexicographically en anglais) et j'ai des doutes sur ce mot. merci
Configuration: Windows Vista
Firefox 3.0.1

5 réponses

  1. sophieeeeee Messages postés 1396 Date d'inscription   Statut Membre Dernière intervention   53
     
    CompareToIgnore Case me parait le plus approprié parce que ignore case ca veut dire que ca ignore si c'est en majuscule ou minuscule.
    0
  2. artragis Messages postés 510 Statut Membre 146
     
    j'ai de gros problème, je tourne en rond depuis ce matin. mon but est de créer un code qui transforme un caractère en chiffre.
    j'ai galéré à comprendre qu'il n'y avait pas que des lettre sur le clavier, et que donc, une simple comparaison lexicographique était à oublier puisque à chaque fois je passe au dessus de ma boucle, ou alors l'ordi ne trouve rien, ce qui est logique.
    Sur la documentation java j'ai donc recherché comment faire, et j'ai trouvé les methode "isLetter()", "isSpace()", "isDigit()", seulement, à peine ai-je intégré ma methode "isLetter" qu'eclipse me dit
    The method isLetter(char) is undefined for the type MoteurCrypto

    je redonne mon code

    //alphabet
    			String alphabet[]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
    			
    			int i;
    			int j;
    			//comparaison et toutes les variables pour la lecture des caractère de la textBox
    		
    			char caraclu[]=new char[1];
    			//boucle for pour la lecture des caractères
    			for(i=0;i<texteEntré.length();i++){
    				caraclu[0]=texteEntré.charAt(i);
    					//là je vérifie la nature des caractères, pour mettre en place mon algorithme de remplacement
                                    if(isLetter(caraclu[0])){
    				}
    				else if(isSpace(caraclu[0])){
    				}
    				else if(isDigit(caraclu[0])){
    				}
    				
    				
    					
    				
    				
    				textecodé=textecodé+" "+j;
    				
    			}
    0
    1. Marco la baraque Messages postés 1030 Statut Contributeur 329
       
      Salut,
      C'est parce que la méthode isLetter (c'est aussi valable pour les autres) n'est pas une méthode de ta classe (qui s'appelle MoteurCrypto je présumme), mais des méthodes de la classe Character.

      Ce sont des méthodes statiques, donc tu peux les appeler ainsi :
      if(Character.isLetter(caraclu[0])){
      }
      else if(Character.isSpace(caraclu[0])){
      }
      else if(Character.isDigit(caraclu[0])){
      }
      


      Cordialement,
      0
  3. artragis Messages postés 510 Statut Membre 146
     
    merci, ça marche pour tout sauf pour isSpace() qui est barré par eclipse avec comme erreur :
    The method isSpace(char) from the type Character is deprecated
    0
  4. Marco la baraque Messages postés 1030 Statut Contributeur 329
     
    Ce n'est pas une erreur, c'est un warning. La méthode est dépréciée, ça signifie qu'elle marchait bien dans les anciennes versions, mais qu'aujourd'hui il faut éviter de l'utiliser (en général d'autres méthodes ont été développées et correspondent mieux au besoin, ou sont optimisée...).

    Dans le cas de isSpace, la méthode a été remplacée par isWhitespace (toujours de la classe Character), d'après la doc.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. artragis Messages postés 510 Statut Membre 146
     
    oui j'ai vu dans la doc, en fait avant il y avait 1 metode là où il y en a deux maintenant (isWhitespace() et isSpaceChar()) je suis désolé. merci pour tout
    0
    1. Marco la baraque Messages postés 1030 Statut Contributeur 329
       
      Il n'y a pas de mal :)
      0