1. Klassens String
struktur
I dag skal vi snakke om String
klassen. Etter ints er String-klassen den mest populære klassen i Java. Den brukes absolutt overalt. Den har en haug med nyttige metoder som du er bedre å kjenne til.
Klassen String
er den eneste klassen bortsett fra primitive typer hvis bokstavelige bokstaver kan brukes i et switch
utsagn; kompilatoren håndterer strengtilføyelse og strengobjekter på en spesiell måte; String
gjenstander er lagret i minnet på en spesiell måte. I utgangspunktet String
er klassen en helt spesiell klasse.
Klassen har også String
en haug med hjelpeklasser som har som formål å ytterligere forenkle arbeidet med strenger i Java. Når du lærer alt dette, vil mange ting virkelig bli mye lettere for deg å gjøre. Vel, vi starter fra selve kjernen av dette økosystemet - organiseringen av klassen String
.
En rekke karakterer
Strukturen til String
klassen er faktisk veldig enkel: inne i den er en tegnarray (char array) som lagrer alle tegnene i strengen. Dette er for eksempel hvordan ordet "Hei" lagres:
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.
String
2. Klassens metoder
Klassen String
har mange metoder: den har 18 konstruktører alene! Så nedenfor nevner vi bare de mest grunnleggende av dem:
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 streng inn i string pool . |
Du kan lære mer om konstruktører i artikkelen Java Constructors .
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: bruk av en char array
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: — ved å bruke metodene split()
ogjoin()
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: — ved å 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. |
GO TO FULL VERSION