indexOf() - 특정 문자나 문자열에서 해당하는 문자의 인덱스 값을 반환하고 찾지 못했을 경우 '-1'을 반환하는 메소드 입니다.
indexOf(String s)
indexOf(int i)
indexOf(String s, int startindex)
indexOf(int i, int startindex)
lastIndexOf() - 특정 문자나 문자열에서 해당하는 문자를 뒤에서 부터 찾아 인덱스 값을 반환하고 찾지 못했을 경우 '-1'을 반환하는 메소드 입니다.
lastIndexOf(String s)
lastIndexOf(int i)
lastIndexOf(String s, int startindex)
lastIndexOf(int i, int startindex)
indexOf() 예제를 먼저보면
class Main {
public static void main(String args[]) {
String s = "Hello Hi World";
String i = "abccdef";
System.out.println(s.indexOf("e")); //1
System.out.println(s.indexOf("W")); //9
System.out.println(s.indexOf("w")); //-1
System.out.println(s.indexOf("l",5)); //12
System.out.println(s.indexOf(" ")); //5
System.out.println(i.indexOf(98)); //1
System.out.println(i.indexOf(99,3)); //3
System.out.println(s.lastIndexOf("l")); //12
System.out.println(s.lastIndexOf("H",10)); //6
System.out.println(i.lastIndexOf(99)); //3
System.out.println(i.lastIndexOf(99,2)); //3
}
}
s 와 i String 이 있습니다.
실행결과를 보면
s라는 문자열에서 'e'의 위치를 찾습니다. 1번째에 위치하므로 1을 출력합니다.
두번째 줄과 세번째 줄을 보시면 대소문자를 구분한다는 것도 알 수 있습니다.
대문자 'W'를 찾았지만 소문자 'w'는 찾지못해 '-1'이 출력됬습니다.
indexOf("찾는문자",시작위치)를 지정할 수 있습니다.
문자열 s에는 l이라는 문자가 3번 들어갑니다. 위치는 2,3,12 번째에 위치합니다.
네번째 줄 출력문을 보면 'l'의 문자를 찾는데 5라는 숫자가 보입니다.
이 숫자는 5번째부터 시작해서 문자를 찾으라는 말입니다. 그래서 5번째 부터 찾아서 2,3 번째 'l'은 지나가고 12번째에 위치에 있는 'l'을 찾아 12를 반환한 것 입니다.
공백의 위치도 찾을 수 있습니다.
이 출력문을 보면 아스키 코드로도 문자의 위치를 찾을 수 있습니다.
문자열 i 는 "abccdef" 입니다. 여기서 아스키코드 98은 'b'입니다. 'a'가 97입니다.
98를 찾으니 1 이라는 인덱스 위치에 존재하는 'b'를 찾았습니다.
여기서도 시작위치를 지정할 수 있습니다. 3번째 위치부터 시작하니 99인 'c'는 2번째에 'c'가 아닌 3번째 'c'를 찾았습다.
lastIndexOf() 도 있습니다.
indexOf()는 문자를 앞에서 부터 찾는 반면에 lastIndexOf() 는 뒤에서부터 검출합니다.
여기서 주의하실 점은 lastIndexOf()는 i가 소문자가 아니고 대문자입니다.
출력문을 보시면
s 문자열에서 'l'을 찾으니 12번째가 나왔습니다.
문자를 뒤에서 부터 찾는다고 뒤에서 몇 번째 이것이 아니고 인덱스 위치는 indexOf()와 똑같이 왼쪽부터 시작합니다.
두번째 출력문을 보면 'H'를 찾는데 시작위치가 10입니다. 이것 역시 뒤에서 10을 자르는게 아닌
"Hello Hi Wo" 이렇게 자른것입니다.
indexOf()와 마찬가지로 아스키코드 값 으로도 찾을 수 있습니다.
99인 'c'를 찾는데 'c'는 2,3번째에 있습니다. 뒤에서 찾으니 3을 찾았고, 시작위치를 2로 지정하니 2를 찾았습니다.
"abc" 이렇게 된 것 입니다. "def"가 아닙니다.
'Back-End > JAVA' 카테고리의 다른 글
자바8 Function<T,R> interface (0) | 2021.04.26 |
---|---|
자바8 - 인터페이스의 기본 메소드와 스태틱 메소드 (0) | 2021.04.08 |
자바 charAt(int i) -'0' 에 대해서 문자를 정수형으로? (0) | 2021.04.05 |
자바8 - 함수형 인터페이스와 람다 표현식에 대해서 간단하게 (0) | 2021.04.04 |
== 와 equals 차이 (0) | 2020.12.21 |