Heim  >  Artikel  >  Java  >  Eingehende Analyse von Strings in C++ und JAVA

Eingehende Analyse von Strings in C++ und JAVA

高洛峰
高洛峰Original
2017-01-19 15:04:591165Durchsuche

Alle Zeichenfolgenklassen stammen aus C-Sprachzeichenfolgen, und C-Sprachzeichenfolgen sind Arrays von Zeichen. In der Sprache C gibt es keine Zeichenfolgen, sondern nur Zeichenarrays.
Sprechen wir über C++-Strings: C++ bietet zwei Arten von String-Darstellungen: Strings im C-Stil und den von Standard-C++ eingeführten String-Typ. Im Allgemeinen wird die Verwendung des String-Typs empfohlen, in der Praxis muss jedoch immer noch auf die alten Strings im C-Stil zurückgegriffen werden.
1. Zeichenfolgen im C-Stil: Zeichenfolgen im C-Stil stammen aus C und wurden in C++ erweitert. Zeichenfolgen werden in einem Zeichenarray gespeichert, zum Beispiel:
const char *str = „zhangdan“ (letztes nicht vergessen

Da „zhangpeng“ in str3 und str4 im Beispiel beide String-Konstanten sind, werden sie zur Kompilierungszeit bestimmt, sodass str3==str4 wahr ist und „zhang“ und „peng“ auch Zeichen-String-Konstanten sind Da eine Zeichenfolge durch mehrere Zeichenfolgenkonstanten verkettet ist, muss sie selbst eine Zeichenfolgenkonstante sein. Daher wird str2 zur Kompilierungszeit auch in eine Zeichenfolgenkonstante analysiert, sodass sich str2 auch im Konstantenpool befindet.

Der Unterschied zwischen String und StringBuffer in JAVA:

String:
ist ein Objekt, kein primitiver Typ.
ist ein unveränderliches Objekt , er kann nicht geändert werden.
Die Änderung eines vorhandenen String-Objekts erfordert die Neuerstellung eines neuen Objekts und das anschließende Speichern des neuen Werts darin.
String ist eine endgültige Klasse, das heißt, sie kann nicht vererbt werden.
StringBuffer:
Es handelt sich um ein veränderliches Objekt. Wenn es geändert wird, wird das Objekt nicht wie String wiederhergestellt.
Es kann nur über den Konstruktor erstellt werden.
StringBuffer sb = new StringBuffer( );
kann nicht über das Zahlungssymbol bezahlt werden
sb = "xxxxx"; Nachdem das
-Objekt erstellt wurde, wird Speicherplatz im Speicher zugewiesen und zunächst ein Nullwert gespeichert zu StringBuffer
Sie können seine Append-Methode verwenden.
sb.append("hello");
StringBuffer ist bei String-Verbindungsvorgängen effizienter als String:
String str = new String("xxx" ) ;
str += "xx"; Die Verarbeitungsschritte von
bestehen tatsächlich darin, einen StringBuffer zu erstellen, dann append() aufzurufen und schließlich
den StringBuffer anSting();
zu übertragen , die String-Verbindung Die Operation hat einige zusätzliche Operationen als StringBuffer, daher ist sie langsamer

Stellen Sie eine Frage: Warum ist StringBuffer so effizient, brauchen wir also noch String?
Wenn Sie es nicht wissen, schauen Sie es sich an. Die Richtung ist der konstante Pool.

Python-String:
Python ist eine leistungsstarke Skriptsprache, die beim Definieren eines Strings keinen Typ definieren muss. Python-Strings sind normalerweise von einfachen Anführungszeichen ('...'), doppelten Anführungszeichen ("..."), dreifachen Anführungszeichen (""..."") oder ('''...''') umgeben Durch dreifache Anführungszeichen kann die Zeichenfolge aus mehreren Zeilen bestehen und im Allgemeinen eine lange Erzählzeichenfolge darstellen. Grundsätzlich gibt es keinen Unterschied in der Verwendung, aber doppelte Anführungszeichen und dreifache Anführungszeichen („“…““) können einfache Anführungszeichen enthalten, und dreifache Anführungszeichen („…““) können doppelte Anführungszeichen enthalten, aber nicht Erfordert Escape. Wenn spezielle Escapezeichen erforderlich sind, können Sie ''
Python verfügt auch über viele Funktionen zur String-Manipulation. Insbesondere können Sie dir verwenden, was C++ und Java ähnelt.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Für eine ausführlichere Analyse stringbezogener Artikel in C++ und JAVA achten Sie bitte auf die chinesische PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn