Java-kielen substring-metodia käytetään osa­merk­ki­jo­non poi­mi­mi­seen suu­rem­mas­ta merk­ki­jo­nos­ta. Sitä voidaan käyttää kahdella eri tavalla: joko erot­ta­mal­la merk­ki­jo­no in­dek­sis­tä loppuun asti tai käyt­tä­mäl­lä ennalta mää­ri­tel­ty­jä alku- ja lop­puin­dek­se­jä osa­merk­ki­jo­nol­le.

Mikä on Java-merk­ki­jo­non osamerkki-metodi ja miten sitä käytetään?

Java-kielessä merkkejä, numeroita ja eri­kois­merk­ke­jä voidaan yhdistää Java-merk­ki­jo­nok­si. Jos haluat poimia tietyn osajoukon suu­rem­mas­ta merk­ki­jo­nos­ta, sinulla on useita vaih­toeh­to­ja. Java String.split() -menetelmä jakaa koko merk­ki­jo­non yk­sit­täi­siin osiin, jotta saat esi­mer­kik­si sel­keäm­män kuvan merk­ki­jo­nos­ta. Menetelmä substring() menee vielä askeleen pi­dem­mäl­le ja palauttaa vain mää­rit­te­le­mä­si osan merk­ki­jo­nos­ta. Voit määrittää, minkä osan merk­ki­jo­nos­ta haluat poimia, käyt­tä­mäl­lä pel­käs­tään aloi­tusin­dek­siä tai sekä aloitus- että lo­pe­tusin­dek­siä. Tässä ope­tus­oh­jel­mas­sa esit­te­lem­me Java-me­ne­tel­män substring() eri muo­dois­saan.

Java substring() käyttö yhdessä beginIndex kanssa

Kuten edellä mai­nit­tiin, Java-kielen substring() voidaan käyttää kahdella tavalla. En­sim­mäi­ses­sä mää­ri­tel­lään vain sen osa­merk­ki­jo­non alkupiste, jonka haluat poimia. Se jakaa merk­ki­jo­non ky­sei­ses­tä in­dek­sis­tä merk­ki­jo­non vii­mei­seen merkkiin. Sen syntaksi on seuraava:

String substring(int beginIndex)
java

Käyt­tääk­se­si substring(), syötä ensin merk­ki­jo­no, josta haluat poimia osa­merk­ki­jo­non. Määritä sitten ko­ko­nais­lu­vul­la, mistä osa­merk­ki­jo­no alkaa. Voit tar­kas­tel­la tulosta Java-ko­men­nol­la System.out.println. Menetelmä toimii inklusii­vi­ses­ti, mikä tar­koit­taa, että myös merkki, joka on syöt­tä­mä­si indeksin kohdalla, erotetaan. Jos arvon beginIndex on pienempi kuin 0 tai suurempi kuin merk­ki­jo­non to­del­li­nen pituus, saat vir­heil­moi­tuk­sen.

Kat­so­taan­pa yk­sin­ker­tais­ta esi­merk­kiä, jotta näemme, miten substring() tar­kal­leen toimii Javassa. Luomme merk­ki­jo­non ja poimimme siitä osa­merk­ki­jo­non.

public class Main {
	public static void main(String args[]) {
	String Str = new String("This is an example. This is another sentence.");
	System.out.print("The substring is: ");
	System.out.println(Str.substring(20));
	}
}
java

Kun suoritat koodin, saat seuraavan tuloksen:

The substring is: This is another sentence.
java

Tietenkin tämä toimii yhtä hyvin myös nu­me­roi­den kanssa:

public class Main {
	public static void main(String args[]) {
	String Str = new String("192.448.782.1142");
	System.out.print("The last four digits are: ");
	System.out.println(Str.substring(12));
	}
}
java

Tässä on tulos:

The last four digits are: 1142
java

Kuinka käyttää substring() yhdessä beginIndex ja endIndex kanssa

Toinen tapa käyttää Java substring() -me­ne­tel­mää mah­dol­lis­taa paremman hallinnan tuloksena olevan osa­merk­ki­jo­non suhteen. Voit määrittää paitsi osa­merk­ki­jo­non al­ku­pis­teen myös lop­pu­pis­teen. Syntaksi on seuraava:

String substring(int beginIndex, int endIndex)
java

beginIndex on inklusii­vi­nen ja endIndex on eksklusii­vi­nen. Kat­so­taan­pa vielä kerran yk­sin­ker­tais­ta esi­merk­kiä:

public class Main {
	public static void main(String args[]) {
	String Str = new String("This is an example. This is another sentence.");
	System.out.print("The substring is: ");
	System.out.println(Str.substring(8, 18));
	}
}
java

Tulostus on:

The substring is: an example
java

Voit myös helposti poimia osan merk­ki­jo­nos­ta yhdestä sanasta. Seu­raa­vas­sa esi­mer­kis­sä luomme os­tos­lis­tan:

public class Main {
	public static void main(String args[]) {
	String Str = new String("Eggs, Honey, Milk, Bread");
	System.out.print("The substring is: ");
	System.out.println(Str.substring(7, 10));
	}
}
java

Uusi tulos näyttää seu­raa­val­ta:

The substring is: one
java

Vii­mei­ses­sä esi­mer­kis­sä esit­te­lem­me Java-kielen substring() käytännön so­vel­luk­sen. Kuvittele, että olet saanut asia­kas­tie­to­ja tietyssä muodossa. Jos haluat eristää vain osan näistä tiedoista, substring() on täy­del­li­nen ratkaisu. Kat­so­taan­pa koodia:

public class Main {
	public static void main(String args[]) {
	String Str = new String("247: Taylor, Javal|taylorj@example.com|London|12.04.1972");
	System.out.print("Here is the customer’s email address: ");
	System.out.println(Str.substring(19, 38));
	}
}
java

Tässä on tulos:

Here is the customer’s email address: taylorj@example.com
java
Siirry pää­va­lik­koon