안녕하세요. 제임스 입니다. 


이번에는 Java 에서 많이 사용하는 String 관련 함수를 알아 보겠습니다. 


앞서 substring 이라는 함수에 대해 정리 했었는데요. 이녀석과 함께 많이 사용하고 있는 함수들을 정리 하면 아래와 같습니다. 


charAt(), indexOf(), length()


■ charAt(int index)

입력 받은 index 번째 문자를 반환 합니다. 

Java 에서 index 값은 항상 0 에서 부터 시작 합니다. 


String str1 = "abcde";

System.out.println(str1.charAt(2));

str1 을 charAt(2) 한 결과 값은 아래와 같습니다. 


문자열

a

b

c

d

e

index

0

1

2

3

4


index 값이 2 인 문자가 c 입니다. 

즉, 결과값은 "c" 가 리턴 됩니다. 



■ indexOf(String keyword)

문자열 중 입력받은 문자가 있으면 해당 문자의 위치 (index) 값을 리턴하고 문자가 없으면 -1 을 리턴 합니다. 

문자열 조회는 index 값 0 부터 시작 합니다 (왼쪽 부터 읽기 시작함을 의미 합니다)


String str2 = "Definition of indexOf";

System.out.println(str2.indexOf("i"));


위와 같은 경우 결과 값은 아래와 같습니다. 


문자열

D

e

f

i

n

i

t

i

o

n

o

f

i

n

d

e

x

O

f

index

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20


첫 "i" 값이 있는 index 값 3 이 리턴 됩니다. 



만약 아래와 같이 "of" 라는 문자열과 "off" 라는 문자열을 찾을 경우 결과 값은 어떻게 나올까요? 


String str3 = "Definition of indexOf";

System.out.println(str3.indexOf("of"));
System.out.println(str3.indexOf("off"));

"of" 라는 문자열을 찾는 경우 index 값이 11 로 리턴됩니다. 

하지만 "off "라는 문자열은 전체 문장중에서 찾을 수 없는 문자 열이므로 -1 이 리턴 됩니다. 



■ lastIndexOf(String keyword)

indexOf 는 왼쪽에서 부터 조회를 하기 때문에 낮은 index 값을 먼저 조회 하게 됩니다. 

이와 반대로 끝에서 부터 조회를 하는 함수도 제공되고 있습니다. 

이것이 바로 lastIndexOf 함수 입니다. 


String str4 = "Definition of indexOf";

System.out.println(str4.lastIndexOf("i"));

이 경우 뒤에서 부터 " i " 값을 찾기 때문에 아래와 같이 index 값이 14 로 리턴됩니다.


문자열

D

e

f

i

n

i

t

i

o

n

o

f

i

n

d

e

x

O

f

index

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20




■ length()

주어진 문자열의 길이를 리턴 합니다. 

주의 할 것은 index 값을 리턴 하는게 아니라 실제 문장의 길이를 조회 리턴 한다는 겁니다. 


String str5 = "a";

System.out.println(str5.length());

위 문자의 경우 a 의 index 값은 0 이지만 실제 문자 길이는 1 입니다. (결과 값도 1로 리턴 됩니다)


indexOf 설명을 위해 이용한 문자열 "Definition of indexOf" 의 경우 마직막 indexOf 의 "f"의 index 값은 20 이지만 index 는 0 에서 시작하므로 +1 을 해야 실제 문자열의 길이가 나옵니다. 


하지만 우리는 이 길이를 굳이 계산할 필요가 없죠. 

위와 같이 바로 str5.length() 를 해버리면 결과 값이 1로 리턴 됩니다. 



 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,