Tiedon poimiminen merkkijonoista Javassa
Pyyhkäise näyttääksesi valikon
Kun käsittelet tekstiä oikeissa sovelluksissa, tarvitset harvoin koko merkkijonoa — useimmiten tarvitset vain pienen osan siitä. Esimerkiksi nimi sähköpostissa, tuote tilausviestissä tai tietty avainsana lauseessa. Java tarjoaa yksinkertaiset mutta tehokkaat työkalut, joilla voit poimia juuri tarvitsemasi osan.
substring()
Jos haluat ottaa "viipaleen" merkkijonosta merkkien sijaintien perusteella, käytä .substring(). Se perustuu nollapohjaiseen indeksointiin — laskeminen alkaa arvosta 0. Palauttaa uuden String-olion.
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) käskee Javaa aloittamaan indeksistä 6 (mukana) ja lopettamaan juuri ennen indeksiä 11 (poissuljettu) — poimien merkit kohdista 6–10, mikä antaa tulokseksi "Latte".
Jos käytät substring(start) vain yhdellä argumentilla, Java poimii kaiken siitä kohdasta merkkijonon loppuun asti:
order.substring(6); // "Latte with oat milk"
indexOf()
Jos haluat selvittää, missä tietty teksti sijaitsee merkkijonossa, käytä .indexOf(). Leikkaamisen sijaan se etsii tekstin sijainnin. Palauttaa int-tyyppisen arvon, joka ilmaisee osuman alkavan indeksin.
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 käy läpi merkkijonon vasemmalta oikealle, kunnes se löytää "Latte" ja palauttaa sen ensimmäisen merkin sijainnin — 6. Jos tekstiä ei löydy mistään kohtaa merkkijonosta, Java palauttaa arvon -1.
Molempien yhdistäminen — käytännön esimerkki
Tässä käytännön esimerkissä yhdistetään indexOf() ja substring() käyttäjätunnuksen poimimiseksi sähköpostiosoitteesta.
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("@") etsii @-merkin sijainnin, sitten substring(0, atPosition) poimii kaiken merkkijonon alusta aina @-merkkiin asti, mutta ei sisällä sitä. Tuloksena on "anna.coffee". Kovakoodattujen sijaintien sijaan annamme Javan löytää rajan ja poimia juuri haluamamme osan.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Tiedon poimiminen merkkijonoista Javassa
Kun käsittelet tekstiä oikeissa sovelluksissa, tarvitset harvoin koko merkkijonoa — useimmiten tarvitset vain pienen osan siitä. Esimerkiksi nimi sähköpostissa, tuote tilausviestissä tai tietty avainsana lauseessa. Java tarjoaa yksinkertaiset mutta tehokkaat työkalut, joilla voit poimia juuri tarvitsemasi osan.
substring()
Jos haluat ottaa "viipaleen" merkkijonosta merkkien sijaintien perusteella, käytä .substring(). Se perustuu nollapohjaiseen indeksointiin — laskeminen alkaa arvosta 0. Palauttaa uuden String-olion.
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) käskee Javaa aloittamaan indeksistä 6 (mukana) ja lopettamaan juuri ennen indeksiä 11 (poissuljettu) — poimien merkit kohdista 6–10, mikä antaa tulokseksi "Latte".
Jos käytät substring(start) vain yhdellä argumentilla, Java poimii kaiken siitä kohdasta merkkijonon loppuun asti:
order.substring(6); // "Latte with oat milk"
indexOf()
Jos haluat selvittää, missä tietty teksti sijaitsee merkkijonossa, käytä .indexOf(). Leikkaamisen sijaan se etsii tekstin sijainnin. Palauttaa int-tyyppisen arvon, joka ilmaisee osuman alkavan indeksin.
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 käy läpi merkkijonon vasemmalta oikealle, kunnes se löytää "Latte" ja palauttaa sen ensimmäisen merkin sijainnin — 6. Jos tekstiä ei löydy mistään kohtaa merkkijonosta, Java palauttaa arvon -1.
Molempien yhdistäminen — käytännön esimerkki
Tässä käytännön esimerkissä yhdistetään indexOf() ja substring() käyttäjätunnuksen poimimiseksi sähköpostiosoitteesta.
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("@") etsii @-merkin sijainnin, sitten substring(0, atPosition) poimii kaiken merkkijonon alusta aina @-merkkiin asti, mutta ei sisällä sitä. Tuloksena on "anna.coffee". Kovakoodattujen sijaintien sijaan annamme Javan löytää rajan ja poimia juuri haluamamme osan.
Kiitos palautteestasi!