Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[자바/Java] - indexOf(), substring() (문자열 자르기) 본문

Study/Java

[자바/Java] - indexOf(), substring() (문자열 자르기)

luke-king 2024. 4. 21. 19:27

 

 

 

 

indexOf(), substring() (문자열 자르기)

이번에 자바 메서드 다뤄볼 indexOf() 와 substring(), split() 문자열 자르기다.

 

 

indexOf()

  • indexOf(String str)
  • indexOf(int ch)
  • indexOf(int ch, int fromIndex)
  • indexOf(String str, int fromIndex)

 

indexOf()는 substring과 다르게 문자를 반환하지 않고 index를 반환한다. (문자열 첫 시작부터 처음 발견되는 인덱스)

반환하는 index의 값은 " 0 "부터 시작하며 일치하지 않으면 " -1 "을 반환한다.

바로 코드로 확인해 보겠다.

 

< indexOf() >

 

public class Main {

    public static void main(String[] args) {

        String str = "Hello world";

        System.out.println(str.indexOf("l")); // 2
        System.out.println(str.indexOf("l",4)); // 9
        System.out.println(str.indexOf("world")); // 6
        System.out.println(str.indexOf("k")); // -1
        System.out.println(str.indexOf(" ")); // 5

    }

}

 

이번 예시 문자열은 "Hello world"로 들어 보겠다. 출력 결과를 보자.

  • str.indexOf("l") : 결과값은 2. 인덱스 0 부터 시작하기에 처음 발견한 " l "은 2번 인덱스 이다.
  • str.indexOf("l", 4) : 결과값은 9. 찾을 문자열과, 문자열의 몇번째부터 시작할지 지정해주는 거다. 만약 1번째 설명했던 것처럼 시작 지점을 정해주지 않으면 인덱스 0 번부터 시작하기에 2가 나오지만, 필자는 4부터 지정해줬기에 인덱스 4인 " o "부터 시작해 뒤에 있는 " l "을 찾아 인덱스 9 를 반환 해준다.
  • str.indexOf("world") : 결과값은 6. 문자열을 이어서도 찾을수 있다. 하지만 설명했다 시피 찾는단어 시작점 부터 이기에 인덱스는 6를 반환한다. (공백 포함)
  • str.indexOf("k") : 결과값은 -1. 찾는 문자열에 없는 문자는 -1을 반환한다.
  • str.indexOf(" ") : 결과값은 5. 공백도 찾을수 있기에 공백의 위치인 인덱스 5를 반환한다. 

 

 

 

 

substring()

  • 문자열.substring(int startIndex, int endIndex)
  • 문자열.substring(int Index)

substring()은 startindex, endindex 이렇게 어디서부터 어디까지 자를 건지 지정해줄수 있으며

문자열의 원하는 위치를 호출할수도 있다.

말로 설명하는 것 보다는 코드로 직접 보는게 편하므로 바로 코드를 봐보겠다.

 

< substring(int startindex, int endindex) >, < substring(index) >

public class Main {

    public static void main(String[] args) {

        String str = "안녕하세요개발자입니다";

        System.out.println(str.substring(0));   //안녕하세요개발자입니다
        System.out.println(str.substring(2,7)); //하세요개발
        System.out.println(str.substring(2));  //하세요개발자입니다

    }

}

 

출력 결과를 보자.

  • str.substring(0) : 0번째 인덱스 부터 결과를 출력한다. 0번째는 배열과 다르게 "안" 부터가 아니라 안 앞에서 부터이기에 글자 시작점이 1부터 자르는걸 보여준다 봐도 무방하다. (입력한 숫자 뒤 부터 출력한다 이해하자.)
  • str.substring(2,7) : 2번째 인덱스 부터 7번째 인덱스 까지 문자를 출력한다.
  • str.substring(2) : 2번째 인덱스 부터 모든 문자를 출력한다.