Extrahera information från strängar i Java
Svep för att visa menyn
När du arbetar med text i riktiga applikationer behöver du sällan hela strängen — oftast behöver du bara en liten del av den. Ett namn i ett e-postmeddelande, en produkt i ett ordermeddelande eller ett specifikt nyckelord dolt i en mening. Java ger oss enkla men kraftfulla verktyg för att plocka ut exakt det vi behöver.
substring()
Om du behöver ta en "del" av en sträng baserat på teckenpositioner, använd .substring(). Den använder nollbaserad indexering — räkningen börjar från 0. Den returnerar 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) instruerar Java att börja vid index 6 (inkluderat) och sluta precis före index 11 (exkluderat) — vilket extraherar tecknen på positionerna 6 till och med 10, vilket ger oss "Latte".
Om du använder substring(start) med endast ett argument, extraherar Java allt från den positionen till slutet av strängen:
order.substring(6); // "Latte with oat milk"
indexOf()
Om du behöver hitta var en specifik text finns i en sträng, använd .indexOf(). Istället för att klippa ut text lokaliserar den den. Den returnerar ett int-värde som representerar startindex för träffen.
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 skannar strängen från vänster till höger tills den hittar "Latte" och returnerar positionen för dess första tecken — 6. Om texten inte hittas någonstans i strängen returnerar Java -1.
Kombinera båda — Verkligt exempel
Detta verkliga exempel kombinerar indexOf() och substring() för att extrahera ett användarnamn från en e-postadress.
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("@") hittar positionen för @-symbolen, sedan extraherar substring(0, atPosition) allt från början av strängen upp till — men inte inklusive — @. Resultatet är "anna.coffee". Istället för att hårdkoda positioner låter vi Java hitta gränsen och extrahera exakt det vi behöver.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Extrahera information från strängar i Java
När du arbetar med text i riktiga applikationer behöver du sällan hela strängen — oftast behöver du bara en liten del av den. Ett namn i ett e-postmeddelande, en produkt i ett ordermeddelande eller ett specifikt nyckelord dolt i en mening. Java ger oss enkla men kraftfulla verktyg för att plocka ut exakt det vi behöver.
substring()
Om du behöver ta en "del" av en sträng baserat på teckenpositioner, använd .substring(). Den använder nollbaserad indexering — räkningen börjar från 0. Den returnerar 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) instruerar Java att börja vid index 6 (inkluderat) och sluta precis före index 11 (exkluderat) — vilket extraherar tecknen på positionerna 6 till och med 10, vilket ger oss "Latte".
Om du använder substring(start) med endast ett argument, extraherar Java allt från den positionen till slutet av strängen:
order.substring(6); // "Latte with oat milk"
indexOf()
Om du behöver hitta var en specifik text finns i en sträng, använd .indexOf(). Istället för att klippa ut text lokaliserar den den. Den returnerar ett int-värde som representerar startindex för träffen.
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 skannar strängen från vänster till höger tills den hittar "Latte" och returnerar positionen för dess första tecken — 6. Om texten inte hittas någonstans i strängen returnerar Java -1.
Kombinera båda — Verkligt exempel
Detta verkliga exempel kombinerar indexOf() och substring() för att extrahera ett användarnamn från en e-postadress.
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("@") hittar positionen för @-symbolen, sedan extraherar substring(0, atPosition) allt från början av strängen upp till — men inte inklusive — @. Resultatet är "anna.coffee". Istället för att hårdkoda positioner låter vi Java hitta gränsen och extrahera exakt det vi behöver.
Tack för dina kommentarer!