Traduit de : Les 10 principales questions relatives aux chaînes Java
En termes simples, "==" teste si les références de deux chaînes sont identiques et equals() teste si les valeurs des deux chaînes sont identiques. Sauf si vous souhaitez vérifier si deux chaînes sont le même objet, il est préférable d'utiliser equals().
Ce serait mieux si vous connaissiez le mécanisme de persistance des chaînes.
Les chaînes sont immuables, ce qui signifie qu’une fois créées, elles y restent jusqu’à ce qu’elles soient nettoyées par le ramasse-miettes. Avec un tableau, vous pouvez modifier explicitement ses éléments. De cette façon, les informations sensibles en matière de sécurité (telles que les mots de passe) n'apparaîtront nulle part ailleurs sur le système.
Pour Java7, la réponse est oui. À partir du JDK7, nous pouvons utiliser String comme condition de l'instruction switch. Avant JDK6, nous ne pouvions pas utiliser String comme condition de l'instruction switch.
// java 7 uniquement !switch (str.toLowerCase()) { case "a": valeur = 1; cas "b": valeur = 2;
int n = Integer.parseInt("10");
Tout simplement, il est si souvent utilisé qu’il est parfois ignoré.
Nous pouvons simplement utiliser des expressions régulières pour le décomposer. "/s" représente des espaces blancs, tels que " ", "/t", "/r", "/n".
String[] strArray = aString.split("//s+");
Dans JDK6, la méthode substring() fournit une fenêtre sur un tableau de caractères représentant une chaîne existante, mais ne crée pas de nouvelle chaîne. Pour créer une nouvelle chaîne représentée par un nouveau tableau de caractères, ajoutez une chaîne vide comme suit :
str.substring(m, n) + ""
Cela crée un tout nouveau tableau de caractères représentant la nouvelle chaîne. L'approche ci-dessus rend parfois le code plus rapide car le garbage collector collectera les grandes chaînes inutilisées et ne conservera qu'une sous-chaîne.
Dans Oracle JDK 7, substring() crée un nouveau tableau de caractères sans utiliser le tableau existant. Le diagramme de la méthode substring() dans JDK 6 et JDK 7 illustre les différences entre substring() dans JDK 6 et JDK 7.
String vs StringBuilder : StringBuilder est mutable, ce qui signifie que l'on peut modifier sa valeur après la création.
StringBuilder vs StringBuffer : StringBuffer est synchrone, ce qui signifie qu'il est thread-safe, mais plus lent que StringBuilder.
En Python, on peut répéter une chaîne en la multipliant par un nombre. En Java, nous pouvons répéter une chaîne via la méthode repeat() de la classe StringUtils du package Apache Commons Lang.
Chaîne str = "abcd";Chaîne répétée = StringUtils.repeat(str,3);//abcdabcdabcd
String str = "17 septembre 2013";Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);System.out.println(date);//Mardi 17 septembre 00:00 :00 HAE 2013
Utilisez la classe StringUtils du package Apache Commons Lang.
int n = StringUtils.countMatches("11112222", "1");System.out.println(n);
Question supplémentaire : Comment détecter qu'une chaîne ne contient que des lettres majuscules
Traduit de : Les 10 principales questions relatives aux chaînes Java