The Java-merkkijonoluokan alimerkkijono() menetelmä palauttaa osan merkkijonosta.
Välitämme beginIndex- ja endIndex-numeropaikan Java-alimerkkijonomenetelmässä, jossa beginIndex on inklusiivinen ja endIndex on poissulkeva. Toisin sanoen beginIndex alkaa 0:sta, kun taas endIndex alkaa 1:stä.
Java-merkkijonossa on kahdenlaisia alimerkkijonomenetelmiä.
Allekirjoitus
public String substring(int startIndex) // type - 1 and public String substring(int startIndex, int endIndex) // type - 2
Jos emme määritä endIndexiä, menetelmä palauttaa kaikki merkit startIndexistä.
Parametrit
aloitushakemisto : aloitusindeksi sisältää
endIndex : loppuindeksi on poissulkeva
Palauttaa
määritetty merkkijono
Poikkeusheitot
StringIndexOutOfBoundsException heitetään, kun jokin seuraavista ehdoista täyttyy.
- jos aloitusindeksi on negatiivinen arvo
- loppuindeksi on alempi kuin aloitusindeksi.
- Joko aloitus- tai loppuindeksi on suurempi kuin merkkijonossa olevien merkkien kokonaismäärä.
Sisäisen toteutuksen osamerkkijono(int beginIndex)
public String substring(int beginIndex) { if (beginIndex <0) { throw new stringindexoutofboundsexception(beginindex); } int sublen="value.length" - beginindex; if (sublen < 0) stringindexoutofboundsexception(sublen); return (beginindex="=" ? this : string(value, beginindex, sublen); pre> <h3>Internal implementation substring(int beginIndex, int endIndex) </h3> <pre> public String substring(int beginIndex, int endIndex) { if (beginIndex value.length) { throw new StringIndexOutOfBoundsException(endIndex); } int subLen = endIndex - beginIndex; if (subLen <0) { throw new stringindexoutofboundsexception(sublen); } return ((beginindex="=" 0) && (endindex="=" value.length)) ? this : string(value, beginindex, sublen); < pre> <h2>Java String substring() method example</h2> <p> <strong>FileName:</strong> SubstringExample.java</p> <pre> public class SubstringExample{ public static void main(String args[]){ String s1='javatpoint'; System.out.println(s1.substring(2,4));//returns va System.out.println(s1.substring(2));//returns vatpoint }} </pre> <span> Test it Now </span> <p> <strong>Output:</strong> </p> <pre>va vatpoint </pre> <h2>Java String substring() Method Example 2</h2> <p> <strong>FileName:</strong> SubstringExample2.java</p> <pre> public class SubstringExample2 { public static void main(String[] args) { String s1='Javatpoint'; String substr = s1.substring(0); // Starts with 0 and goes to end System.out.println(substr); String substr2 = s1.substring(5,10); // Starts from 5 and goes to 10 System.out.println(substr2); String substr3 = s1.substring(5,15); // Returns Exception } } </pre> <p> <strong>Output:</strong> </p> <pre> Javatpoint point Exception in thread 'main' java.lang.StringIndexOutOfBoundsException: begin 5, end 15, length 10 </pre> <h2>Applications of substring() Method</h2> <p>1) The substring() method can be used to do some prefix or suffix extraction. For example, we can have a list of names, and it is required to filter out names with surname as 'singh'. The following program shows the same.</p> <p> <strong>FileName:</strong> SubstringExample3.java</p> <pre> public class SubstringExample3 { // main method public static void main(String argvs[]) { String str[] = { 'Praveen Kumar', 'Yuvraj Singh', 'Harbhajan Singh', 'Gurjit Singh', 'Virat Kohli', 'Rohit Sharma', 'Sandeep Singh', 'Milkha Singh' }; String surName = 'Singh'; int surNameSize = surName.length(); int size = str.length; for(int j = 0; j <size; j++) { int length="str[j].length();" extracting the surname string substr="str[j].substring(length" - surnamesize); checks whether is equal to 'singh' or not if(substr.equals(surname)) system.out.println(str[j]); } < pre> <p> <strong>Output:</strong> </p> <pre> Yuvraj Singh Harbhajan Singh Gurjit Singh Sandeep Singh Milkha Singh </pre> <p>2) The substring() method can also be used to check whether a string is a palindrome or not.</p> <p> <strong>FileName:</strong> SubstringExample4.java</p> <pre> public class SubstringExample4 { public boolean isPalindrome(String str) { int size = str.length(); // handling the base case if(size == 0 || size == 1) { // an empty string // or a string of only one character // is always a palindrome return true; } String f = str.substring(0, 1); String l = str.substring(size - 1); // comparing first and the last character of the string if(l.equals(f)) { // recursively finding the solution using the substring() method // reducing the number of characters of the by 2 for the next recursion return isPalindrome(str.substring(1, size - 1)); } return false; } // main method public static void main(String argvs[]) { // instantiating the class SubstringExample4 SubstringExample4 obj = new SubstringExample4(); String str[] = { 'madam', 'rock', 'eye', 'noon', 'kill' }; int size = str.length; for(int j = 0; j <size; j++) { if(obj.ispalindrome(str[j])) system.out.println(str[j] + ' is a palindrome.'); } else not < pre> <p> <strong>Output:</strong> </p> <pre> madam is a palindrome. rock is not a palindrome. eye is a palindrome. noon is a palindrome. kill is not a palindrome. </pre> <hr></size;></pre></size;></pre></0)></pre></0)>Testaa nyt
Lähtö:
va vatpoint
Java-merkkijono alimerkkijono() -menetelmän esimerkki 2
Tiedoston nimi: SubstringExample2.java
public class SubstringExample2 { public static void main(String[] args) { String s1='Javatpoint'; String substr = s1.substring(0); // Starts with 0 and goes to end System.out.println(substr); String substr2 = s1.substring(5,10); // Starts from 5 and goes to 10 System.out.println(substr2); String substr3 = s1.substring(5,15); // Returns Exception } }
Lähtö:
Javatpoint point Exception in thread 'main' java.lang.StringIndexOutOfBoundsException: begin 5, end 15, length 10
Substring()-menetelmän sovellukset
1) Substring()-menetelmää voidaan käyttää etuliitteen tai loppuliitteen poimimiseen. Meillä voi olla esimerkiksi luettelo nimistä, ja se on suodatettava pois nimet, joiden sukunimi on 'singh'. Seuraava ohjelma näyttää saman.
Tiedoston nimi: SubstringExample3.java
public class SubstringExample3 { // main method public static void main(String argvs[]) { String str[] = { 'Praveen Kumar', 'Yuvraj Singh', 'Harbhajan Singh', 'Gurjit Singh', 'Virat Kohli', 'Rohit Sharma', 'Sandeep Singh', 'Milkha Singh' }; String surName = 'Singh'; int surNameSize = surName.length(); int size = str.length; for(int j = 0; j <size; j++) { int length="str[j].length();" extracting the surname string substr="str[j].substring(length" - surnamesize); checks whether is equal to \'singh\' or not if(substr.equals(surname)) system.out.println(str[j]); } < pre> <p> <strong>Output:</strong> </p> <pre> Yuvraj Singh Harbhajan Singh Gurjit Singh Sandeep Singh Milkha Singh </pre> <p>2) The substring() method can also be used to check whether a string is a palindrome or not.</p> <p> <strong>FileName:</strong> SubstringExample4.java</p> <pre> public class SubstringExample4 { public boolean isPalindrome(String str) { int size = str.length(); // handling the base case if(size == 0 || size == 1) { // an empty string // or a string of only one character // is always a palindrome return true; } String f = str.substring(0, 1); String l = str.substring(size - 1); // comparing first and the last character of the string if(l.equals(f)) { // recursively finding the solution using the substring() method // reducing the number of characters of the by 2 for the next recursion return isPalindrome(str.substring(1, size - 1)); } return false; } // main method public static void main(String argvs[]) { // instantiating the class SubstringExample4 SubstringExample4 obj = new SubstringExample4(); String str[] = { 'madam', 'rock', 'eye', 'noon', 'kill' }; int size = str.length; for(int j = 0; j <size; j++) { if(obj.ispalindrome(str[j])) system.out.println(str[j] + \' is a palindrome.\'); } else not < pre> <p> <strong>Output:</strong> </p> <pre> madam is a palindrome. rock is not a palindrome. eye is a palindrome. noon is a palindrome. kill is not a palindrome. </pre> <hr></size;></pre></size;>
2) Substring()-menetelmällä voidaan myös tarkistaa, onko merkkijono palindromi vai ei.
Tiedoston nimi: SubstringExample4.java
public class SubstringExample4 { public boolean isPalindrome(String str) { int size = str.length(); // handling the base case if(size == 0 || size == 1) { // an empty string // or a string of only one character // is always a palindrome return true; } String f = str.substring(0, 1); String l = str.substring(size - 1); // comparing first and the last character of the string if(l.equals(f)) { // recursively finding the solution using the substring() method // reducing the number of characters of the by 2 for the next recursion return isPalindrome(str.substring(1, size - 1)); } return false; } // main method public static void main(String argvs[]) { // instantiating the class SubstringExample4 SubstringExample4 obj = new SubstringExample4(); String str[] = { 'madam', 'rock', 'eye', 'noon', 'kill' }; int size = str.length; for(int j = 0; j <size; j++) { if(obj.ispalindrome(str[j])) system.out.println(str[j] + \\' is a palindrome.\\'); } else not < pre> <p> <strong>Output:</strong> </p> <pre> madam is a palindrome. rock is not a palindrome. eye is a palindrome. noon is a palindrome. kill is not a palindrome. </pre> <hr></size;>
0)>0)>