Java:Opérations sur les chaînes de caractères

De WIKI.minetti.org
Révision de 7 avril 2016 à 16:53 par Jp (discussion | contributions) (Page créée avec « == Transformation d'une chaîne de caractères en tableau == La méthode [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#split(java.lang.String) split] de l... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Transformation d'une chaîne de caractères en tableau

La méthode split de l'objet java.lang.String permet de transformer la chaîne de caractères en un tableau grâce à un caractère de séparation.

Exemple

String myString = "abc-def-ghi-jklm";
String[] myTab = myString.split("-");

Dans cet exemple, le tableau myTab va contenir les éléments suivants:

  • abc
  • def
  • ghi
  • jklm

Insertion de données dans une chaîne de caractères

La classe java.text.MessageFormat permet d'insérer des données dans une chaîne de caractères.

Par exemple:

  • {0,number,integer} pour afficher un nombre entier;
  • {0,date,dd/MM/yyyy} pour afficher une date sous la forme jj/mm/aaaa;
  • {0,date,short} pour afficher une date sous la forme courte;
  • {0,date,medium} pour afficher une date sous la forme moyenne;
  • {0,date,long} pour afficher une date sous la forme longue;
  • {0,date,full} pour afficher une date sous la forme entière.

Manipuler des chaînes de caractères avec les expressions régulières

La méthode replaceAll permet de remplacer du texte à l'aide des expressions régulières.

Par exemple:

  • Pour supprimer le caractère / en début de chaîne:
replaceAll("^\\/", "")
  • Pour remplacer tous les caractères / par -:
replaceAll("\\/", "-")
  • Pour extraire le texte placé juste avant la dernière occurrence du caractère . (ex: récupérer le nom d'un fichier sans son extension):
replaceAll("(.*)\\..*$", "$1")
  • Pour extraire le texte placé juste après la dernière occurrence du caractère / (ex: récupérer le nom d'un fichier sans son chemin):
replaceAll(".*\\/(.*)$", "$1")
  • Pour supprimer les caractères espaces (c'est à dire les caractères \t, \n, \r, et \f):
replaceAll("\\s", "")
  • Pour supprimer les caractères espaces en début de chaîne (c'est à dire les caractères \t, \n, \r, et \f):
replaceAll("^\\s*", "")
  • Pour remplacer tous les caractères . par /:
replaceAll("\\.", "/")
  • Pour supprimer tous les sauts de lignes:
replaceAll("[\r\n]+", "")
  • Pour supprimer tous les caractères non alphanumériques:
replaceAll("[^0-9,A-Z]", "")

On peut aussi utiliser la classe Pattern pour parser une chaîne de caractères:

final Matcher matcher = Pattern.compile("^(.*)P((\\d*)Y|)((\\d*)M|)((\\d*)D|)(T((\\d*)H|)((\\d*)M|)((\\d*)S|)|)$").matcher(value.trim());
final boolean negative = "-".equals(matcher.replaceAll("$1").trim());
final String yearStr = matcher.replaceAll("$3");
final String monthStr = matcher.replaceAll("$5");
final String dayStr = matcher.replaceAll("$7");
final String hourStr = matcher.replaceAll("$10");
final String minStr = matcher.replaceAll("$12");
final String secStr = matcher.replaceAll("$14");

Dans l'exemple ci-dessus, on parse une durée (ou période) au format XML.

Liens externes