[java] caractere inconnu

Bonjour à tous !

J'ai une fonction qui filtre une chaine de caractere.
Je la lis caractere par caractere.
Mais j'ai un caractere que je ne sais pas définir.
Dans mon code, je fais une trace
System.out.println("i : " + txt.charAt(i) + ".");

A l'affichage j'ai ça :
i : .

Apparemment il y a 4 blancs.

Mais avec ce test
if ((txt.charAt(i) == ' ') || (txt.charAt(i).toString() == "    ")) {entre dans la boucle}


ça ne va jamais dans la boucle !!

Est-ce que quelqu'un sait ce qu'est ce caractere ?

Merci beaucoup!

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. On dirait que le test n'est pas passé :
    if ((txt.charAt(i) == ' ') || (txt.charAt(i).toString() == "    ")) {entre dans la boucle}
    


    et l'affichage du i (j'espère que ça va marcher.
    i : .
    1. B**del de truc de code qui veut pas passer !!

      Je l'écris comme ça alors :
      if ((txt.charAt(i) == ' ') || (txt.charAt(i).toString() == " ")) {entre dans la boucle}

      Pour l'affichage du i, c'est quatre blancs (ça veut pas passer à l'affichage)

      Merci pour votre aide ! ;-)
      1. salut karine,

        == ne fonctionne pas pour les String !
        Il faut utiliser la méthode equals()
        Par exemple :
        texte.equals("bonjour");


        A+
    2. Merci,

      mais je pense pas que c'est ça le problème.

      Quand je fais System.out.println("ici:"+txt.charAt(i)+".");

      J'obtiens que txt.charAt(i) est égal à quatre blancs.

      Quel est ce caractere ?
      Pour que je puisse faire ensuite un test

      if (txt.charAt(i) == 'ce_caractere')

      Merci beaucoup !!
      1. J'ai fait quelques tests et on dirait que l'erreur vient d'ailleurs.

        A un moment, je traite ma chaine avec une methode enlever_balises.
        public String enlever_balises (String txt, int i) {
        String chaine = "";
        
        String retour = "";
        	
        chaine = txt.substring(i+1,txt.length());
        	for (int j=0; j<chaine.length(); j++) {
        		if (chaine.charAt(j) == '>') {
        			retour = chaine.substring(j+1,chaine.length());
        			txt = retour;
        			break;
        		}
        	}
        	System.out.println("txt apres balises:"+txt+".");
        return txt;
        } // !enlever_balises
        


        Voici ma chaine avant le passage de cette méthode :
        <br> <img src="images/ptite-prairie.gif"><br>

        Il y a 4 espaces entre br et img.

        Puis appel de la méthode, j'obtiens:
        txt apres balises: <img src="images/ptite-prairie.gif"><br>

        il y a 6 espaces entre : et img

        C'est pas normal !!

        Ma méthode prend une chaine et enlève la première balise html qu'il trouve. Et rend la chaine privée de cette balise. Elle rajoute pas des espaces!!

        Est-ce que quelqu'un y comprend quelque chose ?

        Merci!
        1. essaie la méthode trim() :
          String trim() 
                    Returns a copy of the string, with leading and trailing whitespace omitted. 


          quand tu fais texte.trim() ca enlève les blancs en début et en fin de texte.
        2. sinon tu peux aussi utiliser cela :

          Character.isWhitespace(texte.charAt(i));

          ca te donne un booléen :
          - true si c'est un caractère blanc
          - false sinon
      2. Salut Karine,

        A mon avis, ton caractère est une tabulation et donc sa longueur est fonction du système où tu l'envoie.
        Si c'est bien le cas, il existe des constantes dans KeyEvent.