Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tiedon poimiminen merkkijonoista Javassa | Merkkijonot
Johdatus Javaan

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

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) käskee Javaa aloittamaan indeksistä 6 (mukana) ja lopettamaan juuri ennen indeksiä 11 (poissuljettu) — poimien merkit kohdista 610, 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

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

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("@") 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.

question mark

Mitä substring(start, end) tekee Javassa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 7

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

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) käskee Javaa aloittamaan indeksistä 6 (mukana) ja lopettamaan juuri ennen indeksiä 11 (poissuljettu) — poimien merkit kohdista 610, 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

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

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("@") 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.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 7
some-alt