Java

Java, indexOf("문자열", 시작위치) / replace(현재문자, 바꿀문자)

greenyellow-s 2024. 7. 15. 16:22

 

indexOf()

 

문자열 위치 찾기

 

문자열에는 앞에서부터 번호(0 ~)가 매겨진다.

"apple" -> a - 0, p - 1, p - 2, l - 3, e - 4

 

이 번호로 원하는 문자의 위치를 찾는다.

 

[형식]

indexOf("문자열")
indexOf("문자열",시작위치)

 

[예시]

String ex = "apple";

ex.indexOf("l",0);

=> 3

apple

ex.indexOf("l");

==> 3

apple

 

 

ex.indexOf("p");

==> 1

apple

첫번째 부터 "p"가 있는 위치를 찾는다. (가장 앞에 있는 문자의 위치)

ex.indexOf("p",2);

==> 2

apple

2번째 문자부터 "p"가 있는 위치를 찾는다.

 

 

찾고 싶은 문자열의 총 개수 구하기

 

찾고 싶은 문자열이 여러개 있는 경우,

 

"abcd251abc255" indexOf("abc") => 0 - 젤 앞에 1개만 찾는다.
                             indexOf("abc",0) => 0
                             indexOf("abc",3) => 8 // 3번째 문자 부터 맞는 위치 찾는다.

 

indexOf("abc", indexOf("abc", indexOf("abc",0) + 3 ) + 3) ...


찾은 위치 + 문자열 개수 => 그 다음 시작 위치

 

찾는 값이 없을 때는 -1로 값이 나온다.

"2646543154" indexOf("abc",0) ==>  -1

 

[예시]

String num = "aaddccddd"
String now = "dd"

int index = 0;
int count = 0;
                
while((index = num.indexOf(now, index)) != -1) {
    index += now.length();
    count++; // 찾는 문자열의 개수
}// 문자열 찾기 while

System.out.print("count = " + count);

[실행결과]

count = 2

 

찾는 문자열이 전체 문자열보다 클 경우

if(num.length() < now.length()) {
    System.out.println("입력한 문자열의 크기가 작습니다.");
}else {

 


replace()

 

문자열 치환(변경)

 

[형식]

replace("현재 문자", "바꿀 문자");

 

[예시]

int num = "aabbccdd"
System.out.println(num.replace("aa", "22"));

 

[실행결과]

22bbccdd