Udtrækning af Information fra Strenge i Java
Stryg for at vise menuen
Når du arbejder med tekst i virkelige applikationer, har du sjældent brug for hele strengen — oftest har du kun brug for en lille del af den. Et navn i en e-mail, et produkt i en ordrebesked eller et bestemt nøgleord skjult i en sætning. Java giver os enkle, men kraftfulde værktøjer til at udtrække præcis det, vi har brug for.
substring()
Hvis du har brug for at tage et "udsnit" af en streng baseret på tegnpositioner, skal du bruge .substring(). Den benytter nul-baseret indeksering — optællingen starter fra 0. Den returnerer en ny String.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; String drinkName = order.substring(6, 11); System.out.println(drinkName); } }
substring(6, 11) instruerer Java om at starte ved indeks 6 (inkluderet) og stoppe lige før indeks 11 (ekskluderet) — udtrækker tegnene på positionerne 6 til og med 10, hvilket giver os "Latte".
Hvis du bruger substring(start) med kun ét argument, udtrækker Java alt fra den position til slutningen af strengen:
order.substring(6); // "Latte with oat milk"
indexOf()
Hvis du har brug for at finde, hvor et bestemt tekststykke er placeret i en streng, skal du bruge .indexOf(). I stedet for at klippe tekst lokaliserer den det. Den returnerer en int, der repræsenterer startindekset for fundet.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; int lattePosition = order.indexOf("Latte"); System.out.println(lattePosition); } }
Java gennemgår strengen fra venstre mod højre, indtil den finder "Latte" og returnerer positionen for dets første tegn — 6. Hvis teksten ikke findes nogen steder i strengen, returnerer Java -1.
Kombination af begge — virkeligt eksempel
Dette virkelige eksempel kombinerer indexOf() og substring() for at udtrække et brugernavn fra en e-mailadresse.
Main.java
1234567891011121314package com.example; public class Main { public static void main(String[] args) { String customerEmail = "anna.coffee@gmail.com"; int atPosition = customerEmail.indexOf("@"); String username = customerEmail.substring(0, atPosition); System.out.println(username); } }
indexOf("@") finder positionen af @-symbolet, derefter udtrækker substring(0, atPosition) alt fra starten af strengen op til — men ikke inklusive — @. Resultatet er "anna.coffee". I stedet for at hardkode positioner, lader vi Java finde grænsen og udtrække præcis det, vi har brug for.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Udtrækning af Information fra Strenge i Java
Når du arbejder med tekst i virkelige applikationer, har du sjældent brug for hele strengen — oftest har du kun brug for en lille del af den. Et navn i en e-mail, et produkt i en ordrebesked eller et bestemt nøgleord skjult i en sætning. Java giver os enkle, men kraftfulde værktøjer til at udtrække præcis det, vi har brug for.
substring()
Hvis du har brug for at tage et "udsnit" af en streng baseret på tegnpositioner, skal du bruge .substring(). Den benytter nul-baseret indeksering — optællingen starter fra 0. Den returnerer en ny String.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; String drinkName = order.substring(6, 11); System.out.println(drinkName); } }
substring(6, 11) instruerer Java om at starte ved indeks 6 (inkluderet) og stoppe lige før indeks 11 (ekskluderet) — udtrækker tegnene på positionerne 6 til og med 10, hvilket giver os "Latte".
Hvis du bruger substring(start) med kun ét argument, udtrækker Java alt fra den position til slutningen af strengen:
order.substring(6); // "Latte with oat milk"
indexOf()
Hvis du har brug for at finde, hvor et bestemt tekststykke er placeret i en streng, skal du bruge .indexOf(). I stedet for at klippe tekst lokaliserer den det. Den returnerer en int, der repræsenterer startindekset for fundet.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; int lattePosition = order.indexOf("Latte"); System.out.println(lattePosition); } }
Java gennemgår strengen fra venstre mod højre, indtil den finder "Latte" og returnerer positionen for dets første tegn — 6. Hvis teksten ikke findes nogen steder i strengen, returnerer Java -1.
Kombination af begge — virkeligt eksempel
Dette virkelige eksempel kombinerer indexOf() og substring() for at udtrække et brugernavn fra en e-mailadresse.
Main.java
1234567891011121314package com.example; public class Main { public static void main(String[] args) { String customerEmail = "anna.coffee@gmail.com"; int atPosition = customerEmail.indexOf("@"); String username = customerEmail.substring(0, atPosition); System.out.println(username); } }
indexOf("@") finder positionen af @-symbolet, derefter udtrækker substring(0, atPosition) alt fra starten af strengen op til — men ikke inklusive — @. Resultatet er "anna.coffee". I stedet for at hardkode positioner, lader vi Java finde grænsen og udtrække præcis det, vi har brug for.
Tak for dine kommentarer!