웹개발왕

[JAVA] 문자열 indexOf, substring 본문

JAVA

[JAVA] 문자열 indexOf, substring

D.Luffy 2024. 10. 9. 22:40
반응형

 

안녕하세요.

오늘은 JAVA에서 특정 문자의 위치를 찾는 indexOf와 문자열을 자를수 있는 substring에 대해 알아보겠습니다.

 

문자열을 다룰때 유용하게 쓰는 함수이니 꼭 기억해두세요!


 

 

indexOf

 

 

indexOf는 특정 문자의 위치를 찾을수 있는 함수인데요. 예시를 보여드리겠습니다.

 

String word = "abcde";
		
word.indexOf("a");	// 0
word.indexOf("b");	// 1
word.indexOf("c");	// 2
word.indexOf("d");	// 3
word.indexOf("e");	// 4
word.indexOf("f");	// -1

 

문자열 "abcde" 에서 각각의 문자를 indexOf 함수를 사용해서 위치를 찾은건데요.

주석을 보면 알 수 있듯이 문자의 위치는 숫자로 return 받습니다.

그리고 찾고싶은 문자가 없다면 -1를 return 합니다.

한가치 참고할점은 문자열 맨 앞부분이 1이 아닌 0으로 나온다는것입니다.

 

그림으로 표현하면 이렇게 되겠네요!

 

 

그럼 찾고싶은 문자가 2개 이상이면 어떻게 될까요?

String word = "abcde";
		
word.indexOf("ab");	// 0
word.indexOf("cd");	// 2
word.indexOf("de");	// 3
word.indexOf("ae");	// -1

 

만약 찾고싶은 문자가 2개 이상이면 맨 앞에있는 문자를 기준으로 위치가 return 됩니다.

 

 indexOf 함수와 문자열을 분리하는 함수인 substring을 혼합해서 많이 사용하는데요.

substring 함수의 예시도 보여드릴께요.


 

 

substring

 

 

앞서 말했듯이 substring 함수는 문자열을 분리하는 함수인데요. 예시를 보여드리겠습니다.

String word = "abcde";

int a = word.indexOf("a");	// 0
int b = word.indexOf("b");	// 1
int c = word.indexOf("c");	// 2
int d = word.indexOf("d");	// 3
int e = word.indexOf("e");	// 4

word.substring(a)	// "abcde"
word.substring(b)	// "bcde"
word.substring(c)	// "cde"
word.substring(d)	// "de"
word.substring(e)	// "e"

 

위 소스를 보면 알 수 있듯이 substring 함수 안에 있는 숫자부터 출력되는걸 볼 수 있습니다.

 

그럼 문자열 "abcde" 에서 "bcd"만 출력하고 싶으면 어떻게 해야될까요?

String word = "abcde";

int a = word.indexOf("a");	// 0
int b = word.indexOf("b");	// 1
int c = word.indexOf("c");	// 2
int d = word.indexOf("d");	// 3
int e = word.indexOf("e");	// 4

word.substring(b,d)	// "bc"
word.substring(b,e)	// "bcd"

 

"bcd"만 출력하고 싶으면 substring(b,d) 일거 같지만 실제론 substring(b,e)로 해야합니다.

숫자로하면 substring(1,4) 이겠군요.

즉 문자열 1번(포함)부터 4번(포함안됨)까지 출력한다는 뜻입니다.


 

여기까지 JAVA에서 indexOf 와 sustring 함수를 알아보았는데요.

다음엔 더 유익한 내용으로 포스팅 하겠습니다.

읽어주셔서 감사합니다!

반응형