본문 바로가기
JAVA(프로그래밍)

java substring 문자열 자르기

by 켈리113 2018. 7. 26.

java substring 문자열 자르기

 

java에서는 문자열을 자르기 위해서 필요한 메소드를 제공하고 있습니다.

사용방법은 소스를 통해서 알아보도록 하겠습니다.

 

아래는 실제 돌아가는 완전한 소스입니다.

본인 컴퓨터에서 실행해보시면 결과값을 확인해보실수 있습니다.

----------------------------------------------------------------------------------------------

package test;

public class Test {

 public static void main(String[] args) {

  String strTestValue= "ABCDEFGHIZKLMNOPQRSTUVWXYZ";


  //ABC를 추출해보겠습니다.
  System.out.println("substring->" + strTestValue.substring(0, 3));

  // CDE를 추출해보겠습니다.
  System.out.println("substring->" + strTestValue.substring(2, 4));

  //전체 문자열을 출력해보겠습니다.
  System.out.println("substring->" + strTestValue.substring(0));


  //        01234567
  strTestValue= "ABCDEFGHIZKLMNOPQRSTUVWXYZ";

  //substring(int arg0); 
  //substring(int arg0, int arg1);


  //좀더 응용해보겠습니다.
  //substring 에 인자값을 줘서 문자열을 추출하는걸 알수가 있습니다.
  //마지막 2글자만 추출하고 싶다면 ???
  //str 에 들어오는 문자열은 알수가 없다면 어떻게 해야 할까요? 이럴때는 다음과 같이 하시면 됩니다.

  System.out.println("마지막 2글자만 추출->" + strTestValue.substring(strTestValue.length() - 2, strTestValue.length()));

  //원하는 결과값을 얻을수 있습니다.

  //자 이제 좀더 용응해보겠습니다.
  //문자열에 어떤 값이 들어올지 모른다는 가정하에..
  strTestValue= "lseradfsdfefwegfwegLESSEJINAAEE";

  //해당 문자열중 a로 시작되는 되는 글자부터 2가지 글자를 추출해보도록 하겠습니다.
  //우선적으로 a문자열을 찾아보도록 하겠습니다. indexOf() 를 이용하면 쉽게 a로 시작되는 문자열의 위치를 알수가 있습니다.

  System.out.println("a로 시작되는 문자열 시작위치 ->" + strTestValue.indexOf("a"));

  //결과값을 보시면 a로 시작되는 시작위치는 4입니다.

  System.out.println("a로 시작되는 되는 글자부터 2자리 글자를 추출->" + strTestValue.substring(strTestValue.indexOf("a"), strTestValue.indexOf("a") + 2));


  System.out.println("L로 시작되는 되는 글자부터 5자리 글자를 추출->" + strTestValue.substring(strTestValue.indexOf("L"), strTestValue.indexOf("L") + 5));

  //원하는 결과값을 추출했습니다.참고로 indexOf() 메소드는 특정문자열을 처음 발견한 위치값을 돌려줍니다. 발견하지 못하면 -1 을 반환합니다.

  System.out.println("indexOf 찾고자하는 문자열이 없을경우 ->" + strTestValue.indexOf("K"));

  //예상했던 대로 찾고자 하는 문자열을 찾지 못해서 -1 을 반환하였습니다.
  //indexOf를 사용해서 원하는 문자열이 없는지 확인 가능합니다.

  if (strTestValue.indexOf("XE") < 0) {

   System.out.println("원하는 문자열을 발견하지 못했습니다.");
  } else {
   System.out.println("원하는 문자열을 발견하였습니다.");
  }

 }
}

----------------------------------------------------------------------------------------------------------------------
  
 

substring 인자값이 1개인 메소드와 2개인 메소드를 제공합니다.

substring(시작 인덱스 값, 끝 인덱스 값);

substring(시작인덱스값);

 

시작인덱스는

왼쪽부터 1이 아닌 0부터 시작합니다.

만약 "ABCD"라는 문자열이 있다면

A의 시작인덱스는 0

B는 1

C는 2

D는 3

여기서 중요한 한가지는 마지막 인덱스는 그전 인덱스까지입니다.

substring(시작인덱스값, 마지막인덱스값 -1);

 


  자바에서 문자열을 자를때는 substring메소드를 사용하면 편리합니다. 이상 포스팅을 마칩니다.