logo

자바 문자열 하위 문자열()

그만큼 Java 문자열 클래스 부분 문자열() 메소드는 문자열의 일부를 반환합니다.

BeginIndex가 포함되고 endIndex가 제외되는 Java 하위 문자열 메소드에서 BeginIndex 및 endIndex 번호 위치를 전달합니다. 즉, BeginIndex는 0부터 시작하고 endIndex는 1부터 시작합니다.

Java 문자열에는 두 가지 유형의 하위 문자열 메소드가 있습니다.

서명

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

endIndex를 지정하지 않으면 메서드는 startIndex의 모든 문자를 반환합니다.

매개변수

시작 인덱스 : 시작 인덱스가 포함됩니다.

endIndex : 종료 인덱스는 배타적입니다.

보고

지정된 문자열

예외 발생

StringIndexOutOfBoundsException 다음 조건 중 하나라도 충족되면 발생합니다.

  • 시작 인덱스가 음수 값인 경우
  • 끝 인덱스가 시작 인덱스보다 낮습니다.
  • 시작 또는 끝 인덱스가 문자열에 있는 총 문자 수보다 큽니다.

내부 구현 하위 문자열(int startIndex)

 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)>
지금 테스트해보세요

산출:

va vatpoint 

Java 문자열 substring() 메소드 예 2

파일 이름: 하위 문자열Example2.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 } } 

산출:

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

substring() 메소드의 응용

1) substring() 메소드를 사용하여 접두사 또는 접미사 추출을 수행할 수 있습니다. 예를 들어, 이름 목록이 있을 수 있으며 성이 'singh'인 이름을 필터링해야 합니다. 다음 프로그램도 같은 내용을 보여줍니다.

파일 이름: 하위 문자열Example3.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() 메소드를 사용하여 문자열이 회문인지 여부를 확인할 수도 있습니다.

파일 이름: 하위 문자열Example4.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;>