"Hva synes du, Amigo? Hva er den mest populære Java-klassen etter int?"
"Du har allerede gitt meg en spoiler i tittelen på leksjonen, Ellie. Det er String
!"
"Det er faktisk en spoiler. String
brukes absolutt overalt. Den har en haug med nyttige metoder som du er bedre å kjenne til.
" String
Klassen er den eneste klassen bortsett fra primitive typer hvis bokstaver kan brukes i en switch
uttalelse; kompilatoren håndterer strengaddisjon og strengobjekter på en spesiell måte; String
objekter lagres i minnet på en spesiell måte. I utgangspunktet String
er klassen en veldig spesialklasse.
"Klassen har også String
en haug med hjelpeklasser som har som formål å forenkle arbeidet med strenger i Java ytterligere. Når du lærer alt dette, vil mange ting virkelig bli mye lettere for deg å gjøre."
"Jeg kan ikke vente."
"Vel, vi starter fra selve kjernen av dette økosystemet - organiseringen av klassen String
. Strukturen til klassen String
er faktisk veldig enkel: inne i den er en tegnarray ( char
array) som lagrer alle tegnene i strengen. For eksempel, dette er hvordan ordet "Hei" lagres:
Det er viktig.
Faktisk er dette ikke helt nøyaktig. Fordi String
klassen er veldig viktig, bruker den mange optimaliseringer, og dataene lagres internt ikke som en tegnmatrise, men ganske enkelt som en bytematrise.
Metoder i String-klassen
Klassen String
har mange metoder: den har 18 konstruktører alene! Så nedenfor vil jeg bare liste opp de mest brukte:
Metoder | Beskrivelse |
---|---|
|
Returnerer antall tegn i strengen |
|
Sjekker om strengen er en tom streng |
|
Sjekker at strengen bare inneholder mellomrom: mellomrom, tabulator, ny linje osv. |
|
Returnerer tegnet ved indeksposisjonen i strengen. |
|
Returnerer en rekke av tegnene (en kopi) som utgjør strengen |
|
Konverterer en streng til et sett med byte og returnerer matrisen med byte. |
|
Deler en streng i flere understrenger. |
|
Kobler sammen flere understrenger |
|
Setter en snor i strengbassenget. |
"Det ser veldig bra ut!"
"La oss skrive et program som konverterer en filbane fra Unix-stil til Windows-stil. Unix bruker tegnet /
til å skille mapper, mens Windows bruker \
tegnet.
Løsning 1. Bruke en char
matrise
Kode | Notater |
---|---|
|
Opprett et skannerobjekt Les en linje fra konsollen Konverter en streng til en tegnmatrise Gå over tegnene Hvis tegnet er / , erstatt det med \ . Ikke glem å rømme. Lag en ny streng basert på tegnarrayen. Vis strengen. |
Løsning 2. Bruke split()
og- join()
metodene:
Kode | Notater |
---|---|
|
Lag et skannerobjekt Les en linje fra konsollen Konverter streng til en rekke strenger . Tegnet / brukes som skilletegn (de ekstra to skråstrekene er et resultat av dobbel escape). Slå sammen alle strengene i rekken av strenger . Den \ brukes som en separator (vi ser den unnslippet). Vis strengen. |
Løsning 3. Bruke replace(char oldChar, char newChar)
metoden:
Kode | Notater |
---|---|
|
Lag et skannerobjekt Les en linje fra konsollen. Bytt ut ett tegn med et annet (det andre er escaped) Vis strengen. |
"Jeg likte den tredje løsningen best. Men jeg skal øve på alle tre."
"Godt gjort, Amigo. Jeg ser at du allerede er utålmodig etter å sette den nye kunnskapen din ut i livet. Leksjonen er over."
GO TO FULL VERSION