1. Klassens Stringstruktur
I dag skal vi snakke om Stringklassen. 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 Stringer den eneste klassen bortsett fra primitive typer hvis bokstavelige bokstaver kan brukes i et switchutsagn; kompilatoren håndterer strengtilføyelse og strengobjekter på en spesiell måte; Stringgjenstander er lagret i minnet på en spesiell måte. I utgangspunktet Stringer klassen en helt spesiell klasse.
Klassen har også Stringen 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 Stringklassen 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 Stringklassen er veldig viktig, bruker den mange optimaliseringer, og dataene lagres internt ikke som en tegnmatrise, men ganske enkelt som en bytematrise.
String2. Klassens metoder
Klassen Stringhar 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