logo

Java String substring()

De Java String class substring() metoden returnerer en del av strengen.

Vi passerer beginIndex og endIndex nummerposisjon i Java substring-metoden der beginIndex er inkluderende, og endIndex er eksklusiv. Med andre ord starter beginIndex fra 0, mens endIndex starter fra 1.

Det er to typer understrengmetoder i Java-streng.

Signatur

 public String substring(int startIndex) // type - 1 and public String substring(int startIndex, int endIndex) // type - 2 

Hvis vi ikke spesifiserer endIndex, vil metoden returnere alle tegnene fra startIndex.

Parametere

startindeks : startindeks er inkluderende

endIndex : sluttindeksen er eksklusiv

Returnerer

spesifisert streng

Unntakskast

StringIndexOutOfBoundsException kastes når en av følgende betingelser er oppfylt.

  • hvis startindeksen er negativ verdi
  • sluttindeksen er lavere enn startindeksen.
  • Enten start- eller sluttindeksen er større enn det totale antallet tegn som finnes i strengen.

Intern implementeringsdelstreng (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=&apos;javatpoint&apos;; 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=&apos;Javatpoint&apos;; 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 &apos;main&apos; 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 &apos;singh&apos;. 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[] = { &apos;Praveen Kumar&apos;, &apos;Yuvraj Singh&apos;, &apos;Harbhajan Singh&apos;, &apos;Gurjit Singh&apos;, &apos;Virat Kohli&apos;, &apos;Rohit Sharma&apos;, &apos;Sandeep Singh&apos;, &apos;Milkha Singh&apos; }; String surName = &apos;Singh&apos;; 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[] = { &apos;madam&apos;, &apos;rock&apos;, &apos;eye&apos;, &apos;noon&apos;, &apos;kill&apos; }; 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)>
Test det nå

Produksjon:

va vatpoint 

Java String substring() Metode eksempel 2

Filnavn: SubstringExample2.java

 public class SubstringExample2 { public static void main(String[] args) { String s1=&apos;Javatpoint&apos;; 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 } } 

Produksjon:

 Javatpoint point Exception in thread &apos;main&apos; java.lang.StringIndexOutOfBoundsException: begin 5, end 15, length 10 

Anvendelser av substring()-metoden

1) Substring()-metoden kan brukes til å utvinne prefiks eller suffiks. For eksempel kan vi ha en navneliste, og det er påkrevd å filtrere ut navn med etternavn som 'singh'. Følgende program viser det samme.

Filnavn: SubstringExample3.java

 public class SubstringExample3 { // main method public static void main(String argvs[]) { String str[] = { &apos;Praveen Kumar&apos;, &apos;Yuvraj Singh&apos;, &apos;Harbhajan Singh&apos;, &apos;Gurjit Singh&apos;, &apos;Virat Kohli&apos;, &apos;Rohit Sharma&apos;, &apos;Sandeep Singh&apos;, &apos;Milkha Singh&apos; }; String surName = &apos;Singh&apos;; 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[] = { &apos;madam&apos;, &apos;rock&apos;, &apos;eye&apos;, &apos;noon&apos;, &apos;kill&apos; }; 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()-metoden kan også brukes til å sjekke om en streng er et palindrom eller ikke.

Filnavn: 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[] = { &apos;madam&apos;, &apos;rock&apos;, &apos;eye&apos;, &apos;noon&apos;, &apos;kill&apos; }; 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;>