1. Klassens String
struktur
I dag skal vi tale om String
klassen. Efter ints er String-klassen den mest populære klasse i Java. Det bruges absolut overalt. Det har en masse nyttige metoder, som du er bedre stillet at kende.
Klassen String
er den eneste klasse bortset fra primitive typer, hvis bogstaver kan bruges i et switch
udsagn; compileren håndterer strengtilføjelse og strengobjekter på en særlig måde; String
genstande er historier i hukommelsen på en særlig måde. Grundlæggende String
er klassen en helt speciel klasse.
Klassen har også String
en masse hjælperklasser, hvis formål er yderligere at forenkle arbejdet med strenge i Java. Når du lærer alt dette, vil mange ting virkelig blive meget nemmere for dig at gøre. Nå, vi starter fra selve kernen af dette økosystem - klassens organisering String
.
Række af karakterer
Klassens struktur String
er faktisk meget enkel: inde i den er der et tegnarray (char-array), der gemmer alle tegnene i strengen. For eksempel er dette, hvordan ordet 'Hej' er gemt:

Faktisk er dette ikke helt præcist. Fordi String
klassen er meget vigtig, bruger den en masse optimeringer, og dataene lagres internt ikke som et tegnarray, men blot som et bytearray.
String
2. Klassens metoder
Klassen String
har en masse metoder: den har 18 konstruktører alene! Så nedenfor nævner vi kun de mest grundlæggende af dem:
Metoder | Beskrivelse |
---|---|
|
Returnerer antallet af tegn i strengen |
|
Kontrollerer, om strengen er en tom streng |
|
Kontrollerer, at strengen kun indeholder blanktegn: mellemrum, tabulator, ny linje osv. |
|
Returnerer tegnet ved indekspositionen i strengen. |
|
Returnerer en matrix af tegnene (en kopi), der udgør strengen |
|
Konverterer en streng til et sæt bytes og returnerer matrixen af bytes. |
|
Opdeler en streng i flere understrenge. |
|
Forener flere understrenge sammen |
|
Sætter en snor i string pool . |
Du kan lære mere om konstruktører i artiklen Java Constructors .
Lad os skrive et program, der konverterer en filsti fra Unix-stil til Windows-stil. Unix bruger /
tegnet til at adskille mapper, mens Windows bruger \
tegnet.
Løsning 1: Brug af et char-array
Kode | Noter |
---|---|
|
Opret et scannerobjekt Læs en linje fra konsollen Konverter en streng til et tegnarray Løft over tegnene Hvis tegnet er / , skal du erstatte det med \ . Glem ikke at flygte. Opret en ny streng baseret på tegnarrayet. Vis strengen. |
Løsning 2: — ved hjælp af split()
og join()
metoderne
Kode | Noter |
---|---|
|
Opret et scannerobjekt Læs en linje fra konsollen Konverter streng til en række strenge . Tegnet / bruges som en separator (de ekstra to skråstreger er resultatet af dobbelt escape). Sammenkæd alle strengene i rækken af strenge . Den \ bruges som en separator (vi ser den undslap). Vis strengen. |
Løsning 3: — ved hjælp af replace(char oldChar, char newChar)
metoden
Kode | Noter |
---|---|
|
Opret et scannerobjekt Læs en linje fra konsollen. Erstat blot et tegn med et andet (det andet er escaped) Vis strengen. |
GO TO FULL VERSION