3 votes

Comment tester si un caractère n'est PAS dans une chaîne de caractères ? (java, junit)

Comme le titre l'indique, j'ai des problèmes avec mes tests junit qui passent pour vérifier si un caractère n'est pas dans une chaîne et comment vérifier si une chaîne vide n'a pas de caractère. voici la méthode que j'ai :

     public static boolean isThere(String s, char value){
  for(int x = 0; x <= s.length(); x++){
   if(s.charAt(x) == value){
    return true;
   } else if(s.length() == 0){
    return false;
   }
  }
  return false;

Et voici le test junit :

    public void testIsThere() {
  {
   String sVal  = "Jeff George";
   boolean hasA = StringMethods.isThere(sVal,'e');
   assertTrue(hasA);
   boolean hasE = StringMethods.isThere(sVal, 'o');
   assertTrue(hasE);
   boolean notIn = StringMethods.isThere(sVal,'b');
   assertTrue(notIn);
  }
  {
   String sVal  = "";
   boolean nothingIn = StringMethods.isThere(sVal,'a');
   assertFalse(nothingIn);
   boolean notIn = StringMethods.isThere(sVal,'b');
   assertFalse(notIn); 
  }
 }

Merci beaucoup, j'apprécie

0voto

elduff Points 717

Ou bien, essayez StringUtils.contains() d'apache commons - qui gérera également le cas des chaînes nulles pour vous.

http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html#contains%28java.lang.String,%20char%29

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X