Heim Java javaLernprogramm Eingehende Analyse von Strings in C++ und JAVA

Eingehende Analyse von Strings in C++ und JAVA

Jan 19, 2017 pm 03:04 PM

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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Apr 19, 2025 pm 04:51 PM

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Apr 19, 2025 pm 06:21 PM

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Apr 19, 2025 pm 11:42 PM

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Apr 19, 2025 pm 11:45 PM

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Apr 19, 2025 pm 11:30 PM

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Wie kann ich Java -Objekte sicher in Arrays umwandeln? Wie kann ich Java -Objekte sicher in Arrays umwandeln? Apr 19, 2025 pm 11:33 PM

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Wie kann ich elegant den variablen Entitätsklassennamen erstellen, wenn Tkmybatis für Datenbankabfrage verwendet werden? Wie kann ich elegant den variablen Entitätsklassennamen erstellen, wenn Tkmybatis für Datenbankabfrage verwendet werden? Apr 19, 2025 pm 09:51 PM

Wenn Sie TKMybatis für Datenbankabfragen verwenden, ist das Aufbau von Abfragebedingungen ein häufiges Problem. Dieser Artikel wird ...

Warum verursacht das Frühlingsprojekt beim Starten aufgrund von kreisförmigen Abhängigkeiten Zufälligkeitsprobleme? Warum verursacht das Frühlingsprojekt beim Starten aufgrund von kreisförmigen Abhängigkeiten Zufälligkeitsprobleme? Apr 19, 2025 pm 11:21 PM

Verstehen Sie die Zufälligkeit von kreisförmigen Abhängigkeiten beim Start des Frühlingsprojekts. Bei der Entwicklung des Frühlingsprojekts können Sie Zufälligkeit begegnen, die durch kreisförmige Abhängigkeiten beim Projektstart verursacht werden ...

See all articles