"Hvad synes du, Amigo? Hvad er den mest populære Java-klasse efter int?"
"Du har allerede givet mig en spoiler i titlen på lektionen, Ellie. Det er String
!"
"Det er faktisk en spoiler. String
bruges absolut overalt. Det har en masse nyttige metoder, som du er bedre stillet at kende.
" String
Klassen er den eneste klasse bortset fra primitive typer, hvis bogstaver kan bruges i en switch
sætning; compileren håndterer strengaddition og strengobjekter på en særlig måde; String
objekter er lagret i hukommelsen på en særlig måde. Grundlæggende String
er klassen en meget specialklasse.
"Klassen har også String
en flok 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."
"Jeg kan ikke vente."
"Nå, vi starter fra selve kernen af dette økosystem - klassens organisering String
. Klassens struktur String
er faktisk meget enkel: inde i den er der et tegnarray ( char
array), der gemmer alle tegnene i strengen. For For eksempel er dette, hvordan ordet 'Hej' er gemt:
Det er vigtigt.
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.
Metoder i String-klassen
Klassen String
har en masse metoder: den har 18 konstruktører alene! Så nedenfor vil jeg kun liste de mest brugte:
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 |
|
Sætter en snor i snorebassinet. |
"Det ser meget godt ud!"
"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. Brug 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. Brug 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. |
"Jeg kunne bedst lide den tredje løsning. Men jeg vil øve mig alle tre."
"Godt gået, Amigo. Jeg kan se, at du allerede er utålmodig efter at omsætte din nye viden i praksis. Lektionen er slut."
GO TO FULL VERSION