java substring method tutorial with examples
이 자습서에서는 Java 하위 문자열 메서드를 다룹니다. 구문, 간략한 소개 및 Java 하위 문자열 예제를 살펴 보겠습니다.
또한이 방법을 더 잘 이해하는 데 도움이되는 자주 묻는 질문과 중요한 시나리오 기반 예제를 다룰 것입니다.
이 Java 자습서를 진행하면 기본 문자열에서 하위 문자열을 추출하고 추가 작업을 수행하기위한 프로그램을 직접 작성할 수 있습니다.
=> 여기에서 Java Beginners Guide를 살펴보십시오.
학습 내용 :
자바 하위 문자열 ()
우리 모두 알고 있듯이 Java 하위 문자열은 기본 문자열의 일부일뿐입니다.
예를 들면 ,문자열 'Software Testing'에서 'Software'및 'Testing'은 하위 문자열입니다.
이 메서드는 기본 문자열에서 하위 문자열을 반환하거나 추출하는 데 사용됩니다. 이제 기본 문자열에서 추출하려면 substring () 메서드에서 시작 인덱스와 끝 인덱스를 지정해야합니다.
이 방법에는 두 가지 형식이 있습니다. 이러한 각 형식의 구문은 다음과 같습니다.
통사론:
String substring(int startingIndex); String substring(int startingIndex, int endingIndex);
다음 섹션에서는 이러한 각 양식을 자세히 살펴 보겠습니다.
시작 색인
이 섹션에서는 Java substring () 메서드의 첫 번째 형식에 대해 설명합니다. 첫 번째 형식은 주어진 인덱스에서 시작하여 전체 문자열을 통해 실행되는 하위 문자열을 반환합니다. 따라서 시작 인덱스에서 언급 한 내용이 무엇이든 특정 인덱스에서 전체 문자열을 반환합니다.
다음은 substring () 메서드의 첫 번째 형식을 사용하여 추출을 시연 한 프로그램입니다. 입력 문자열“Software Testing Help”를 가져온 다음 인덱스 9에서 하위 문자열을 추출했습니다.
따라서 출력은 'Testing Help'가됩니다.
노트 : Java 문자열 색인은 항상 0으로 시작합니다.
public class substring { public static void main(String() args) { String str = 'Software testing help'; /* * It will start from 9th index and extract * the substring till the last index */ System.out.println('The original String is: ' +str); System.out.println('The substring is: ' +str.substring(9)); } }
산출:
시작 및 끝 색인
이 섹션에서는 방법의 두 번째 형식에 대해 설명합니다. 여기서는 입력 문자열“Java String substring method”를 가져 와서 시작 인덱스와 끝 인덱스를 모두 지정하는 두 번째 형식을 사용하여 하위 문자열을 추출하려고합니다.
public class substring { public static void main(String() args) { String str = 'Java String substring method'; /* * It will start from 12th index and extract * the substring till the 21st index */ System.out.println('The original String is: ' +str); System.out.println('The substring is: ' +str.substring(12,21)); } }
산출:
Eclipse에서 testng xml 파일을 만드는 방법
Java 하위 문자열 예
시나리오 1 : 지정된 인덱스가 기본 문자열에없는 경우 하위 문자열 메서드의 출력은 무엇입니까?
설명: 이 시나리오에서는 입력 문자열 'Java 프로그래밍'을 가져 와서 시작 및 끝 인덱스에 대해 각각 인덱스를 255 및 350으로 지정하려고합니다.
아시다시피 String에 255 인덱스 번호가 없으면 오류가 발생해야합니다. 예외에 대한 Java 사전 정의 규칙에 따라 '인덱스가 범위를 벗어남'예외가 발생해야합니다. 메서드에서 지정한 인덱스가 주어진 문자열의 범위를 벗어 났기 때문입니다.
public class substring { public static void main(String() args) { String str = 'Java Programming'; /* * It will throw an error after printing the original String. * The index we have specified is out of range for the * main String. Hence, it will throw 'String index of range' * exception */ System.out.println('The original String is: ' +str); System.out.println('The substring is: ' +str.substring(255,350)); } }
산출:
시나리오 2 : 음수 인덱스 값을 제공 할 때이 메서드의 출력은 무엇입니까?
설명: 여기서는 입력 문자열 'Java substring Tutorials'를 가져 와서 음의 시작 및 종료 색인을 제공하고 프로그램이 어떻게 응답하는지 확인하려고합니다.
Java String 인덱스는 0부터 시작하므로 인덱스에서 음의 정수를 허용하지 않아야합니다. 따라서 프로그램은 예외를 발생시켜야합니다.
오류 유형은 지정된 색인이 기본 문자열에 없기 때문에 '문자열 색인이 범위를 벗어남'예외 여야합니다.
public class substring { public static void main(String() args) { String str = 'Java substring Tutorials'; /* * It will throw an error after printing the original String. * The index we have specified is out of range for the * main String because the String index starts from zero. * It does not accept any negative index value. * Hence, it will throw 'String index of range' exception */ System.out.println('The original String is: ' +str); System.out.println('The substring is: ' +str.substring(-5,-10)); } }
산출:
시나리오 3 : 시작 및 끝 인덱스에 (0,0)을 제공하면 하위 문자열의 출력은 무엇입니까?
설명: 이것은 String substring () Java 메소드를 이해하는 또 다른 아주 좋은 시나리오입니다. 여기서는 입력 문자열“Saket Saurav”를 가져 와서 0 번째 인덱스에서 시작하여 0 번째 인덱스에서 끝나는 부분 문자열을 가져 오려고합니다.
프로그램이 어떻게 반응하는지 보는 것은 흥미로울 것입니다.
시작 및 끝 인덱스가 동일하므로 공백을 반환해야합니다. 그러나이 시나리오에서는 프로그램이 성공적으로 컴파일됩니다.
시작 및 끝 색인이 동일한 모든 값에 대해 공백을 리턴합니다. (0,0) 또는 (1,1) 또는 (2,2) 등등.
public class substring { public static void main(String() args) { String str = 'Saket Saurav'; /* * The output will be blank because of the starting and ending * indexes can not be the same. In such scenarios, the * program will return a blank value. The same is applicable * when you are giving the input index as (0,0) or (1,1) or (2,2). * and so on. */ System.out.println('The original String is: ' +str); System.out.println('The substring is: ' +str.substring(0,0)); } }
산출:
자바 8 인터뷰 질문 및 답변
자주 묻는 질문
Q # 1) Java에서 문자열을 하위 문자열로 나누는 방법은 무엇입니까? 하위 문자열에서 동일한 문자열을 다시 만드는 방법은 무엇입니까?
대답: 아래는 입력 문자열을 가져와 시작 및 끝 인덱스를 지정하여 문자열을 하위 문자열로 나눈 프로그램입니다.
다시 문자열 연결 연산자의 도움으로 하위 문자열을 사용하여 동일한 문자열을 만들었습니다.
public class substring { public static void main(String() args) { String str = 'Saket Saurav'; // created two substrings substr1 and substr2 String substr1 = str.substring(0,6); String substr2 = str.substring(6,12); //Printed main String as initialized System.out.println(str); //Printed substr1 System.out.println(substr1); //Printed substr2 System.out.println(substr2); //Printed main String from two substrings System.out.println(substr1 +substr2 ); } }
산출:
질문 # 2) Java에서 문자열이 다른 문자열인지 확인하는 방법은 무엇입니까?
대답: 다음은 입력 문자열“예제 하위 문자열”을 가져온 프로그램입니다. 그런 다음 부분 문자열을 가져와 문자열 변수 'substr'에 저장했습니다. 그 후 Java contains () 메서드를 사용하여 String이 기본 String의 일부인지 여부를 확인했습니다.
public class substring { public static void main(String() args) { String str = 'Example of the substring'; // created a substring substr String substr = str.substring(8,10); //Printed substring System.out.println(substr); /* * used .contains() method to check the substring (substr) is a * part of the main String (str) or not */ if(str.contains(substr)) { System.out.println('String is a part of the main String'); } else { System.out.println('String is not a part of the main String'); } } }
산출:
질문 # 3) Java에서 substring () 메서드의 반환 유형은 무엇입니까?
대답: 아시다시피, String 클래스는 불변이고 substring () 메서드는 String 클래스의 내장 메서드입니다. 문자열에 대해 작업을 수행 할 때마다 후속 문자열이 반환되는 새 문자열입니다.
이 방법도 마찬가지입니다. substring () 메서드를 호출 할 때마다 결과 String은 새로운 String입니다. 따라서 Java에서이 메서드의 반환 유형은 문자열입니다.
질문 # 4) Java에서 String 스레드로부터 안전한가요?
대답: 예. StringBuffer와 마찬가지로 String은 Java에서도 스레드로부터 안전합니다. 즉, String은 주어진 시점에서 단일 스레드에서만 사용할 수 있으며 동시에 String을 사용하는 두 스레드를 허용하지 않습니다.
질문 # 5) 문자열을 초기화하는 두 가지 방법의 차이점은 무엇입니까?
문자열 str1 =“ABC”;
String str2 = new String ( 'ABC');
대답: 두 줄의 코드 모두 String 개체를 제공합니다. 이제 차이점을 나열 할 수 있습니다.
첫 번째 코드 줄은 문자열 풀에서 기존 개체를 반환하는 반면, 'new'연산자의 도움으로 문자열이 생성 된 두 번째 코드 줄은 항상 힙 메모리에 생성 된 새 개체를 반환합니다.
값 'ABC'가 두 행에서 '같음'이지만 '=='이 아닙니다.
이제 다음 프로그램을 보겠습니다.
여기에서 세 개의 문자열 변수를 초기화했습니다. 첫 번째 비교는 true를 반환하는 str1 및 str2에 대한 '=='참조 비교를 기반으로 수행됩니다. 이는 문자열 풀에서 동일한 기존 개체를 사용했기 때문입니다.
두 번째 비교는 '=='를 사용하여 str1과 str3에서 수행되었습니다. 여기서 참조 비교는 String 객체가 'new'연산자의 도움으로 새로 생성 된 str3의 일부이기 때문에 다릅니다. 따라서 거짓을 반환했습니다.
세 번째 비교는 str1과 str3에 포함 된 값을 비교하는 '.equals ()'메서드의 도움으로 수행되었습니다. 두 문자열 변수의 값은 동일합니다. 따라서 그것은 사실을 반환했습니다.
public class substring { public static void main(String() args) { String str1 = 'ABC'; String str2 = 'ABC'; /* * True because '==' works on the reference comparison and * str1 and str2 have used the same existing object from * the String pool */ System.out.println(str1 == str2); String str3 = new String ('ABC'); /* * False because str1 and str3 have not the same reference * type */ System.out.println(str1==str3); /* * True because '.equals' works on comparing the value contained * by the str1 and str3. */ System.out.println(str1.equals(str3)); } }
산출:
결론
이 튜토리얼에서 우리는 substring () 메서드의 다양한 형태에 대해 논의했습니다. 또한 방법을 자세히 이해하는 데 도움이되는 자주 묻는 질문과 함께 여러 시나리오 기반 질문을 포함했습니다.
추가 읽기 = >> MySQL 하위 문자열 함수
모든 시나리오와 개념에 대한 구문, 프로그래밍 예제 및 자세한 분석이 여기에 포함되었습니다. 이것은 substring () 메서드의 자체 프로그램을 개발하고 각 후속 String에 대해 다른 String 조작 작업을 수행하는 데 확실히 도움이 될 것입니다.