Maison  >  Article  >  Java  >  Analyse approfondie des chaînes en C et JAVA

Analyse approfondie des chaînes en C et JAVA

高洛峰
高洛峰original
2017-01-19 15:04:591165parcourir

Toutes les classes de chaînes proviennent de chaînes du langage C, et les chaînes du langage C sont des tableaux de caractères. Il n'y a pas de chaînes en langage C, seulement des tableaux de caractères.
Parlons des chaînes de C : C fournit deux types de représentations de chaînes : les chaînes de style C et le type de chaîne introduit par le standard C. Il est généralement recommandé d'utiliser le type string, mais en pratique, vous devez toujours utiliser les anciennes chaînes de style C.
1.Chaînes de style C : les chaînes de style C proviennent du C et ont été étendues en C. Les chaînes sont stockées dans un tableau de caractères, par exemple :
const char *str = « zhangdan » (n'oubliez pas le dernier

Parce que les "zhangpeng" dans str3 et str4 dans l'exemple sont tous deux des constantes de chaîne, ils sont déterminés au moment de la compilation, donc str3==str4 est vrai et "zhang" et "peng" sont également des caractères constantes de chaîne, lorsque une chaîne est concaténée par plusieurs constantes de chaîne, elle doit elle-même être une constante de chaîne, donc str2 est également analysée en une constante de chaîne au moment de la compilation, donc str2 est également dans le pool de constantes "Une référence à.

La différence entre String et StringBuffer en JAVA :

String :
est un objet, pas un type primitif
est un objet immuable une fois créé. , sa valeur ne peut pas être modifiée.
La modification d'un objet String existant implique de recréer un nouvel objet puis d'y enregistrer la nouvelle valeur.
String est une classe finale, c'est-à-dire qu'elle ne peut pas être héritée.
StringBuffer :
C'est un objet mutable. Lorsqu'il est modifié, l'objet ne sera pas rétabli comme String
Il ne peut être créé que via le constructeur,
StringBuffer sb = new StringBuffer( );
ne peut pas le payer via le symbole de paiement.
sb = "xxxxx"; Une fois l'objet
créé, de l'espace mémoire sera alloué dans la mémoire et un nul sera initialement enregistré pour payer la valeur. à StringBuffer
Vous pouvez utiliser sa méthode append.
sb.append("hello");
StringBuffer est plus efficace que String dans les opérations de connexion de chaîne :
String str = new String("xxx" ) ;
str = "xx"; Les étapes de traitement de
consistent en fait à créer un StringBuffer, puis à appeler append(), et enfin
transférer le StringBuffer vers Sting();
De cette façon, l'opération de connexion String Il a quelques opérations supplémentaires que StringBuffer, donc il est plus lent

Posez une question : Pourquoi StringBuffer est-il si efficace, avons-nous donc toujours besoin de String ?
Si vous ne le savez pas, vérifiez-le. La direction est la piscine constante.

Chaîne Python :
Python est un langage de script puissant qui n'a pas besoin de définir un type lors de la définition d'une chaîne. Les chaînes Python ont généralement des guillemets simples ('...'), des guillemets doubles ("..."), des guillemets triples ("""...""") ou ('''...''') entourés par des guillemets triples, la chaîne peut être composée de plusieurs lignes et peut généralement représenter une grande chaîne narrative. Il n'y a fondamentalement aucune différence d'utilisation, mais les guillemets doubles et triples ("""...""") peuvent contenir des guillemets simples, et les guillemets triples ('''...''') peuvent contenir des guillemets doubles, mais non Nécessite une évasion. Lorsqu'un échappement spécial est nécessaire, vous pouvez utiliser ''
Python possède également de nombreuses fonctions de manipulation de chaînes. Plus précisément, vous pouvez utiliser dir, qui est similaire à C et Java.

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.

Pour une analyse plus approfondie des articles liés aux chaînes en C et JAVA, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn