Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Extrahera information från strängar i Java | Strängar
Introduktion till Java

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

Main.java

123456789101112
package 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

Main.java

123456789101112
package 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

Main.java

1234567891011121314
package 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.

question mark

Vad gör substring(start, end) i Java?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

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

Main.java

123456789101112
package 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

Main.java

123456789101112
package 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

Main.java

1234567891011121314
package 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.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 7
some-alt