Petite question sur le String en java

Résolu/Fermé
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 - 1 sept. 2008 à 09:38
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 1 sept. 2008 à 15:57
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
A voir également:

5 réponses

sophieeeeee Messages postés 1395 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 18 septembre 2008 53
1 sept. 2008 à 09:39
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
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
1 sept. 2008 à 15:14
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
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
1 sept. 2008 à 15:24
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
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
1 sept. 2008 à 15:39
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
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
1 sept. 2008 à 15:45
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

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

Posez votre question
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
1 sept. 2008 à 15:56
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
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
1 sept. 2008 à 15:57
Il n'y a pas de mal :)
0