본문 바로가기
IT ▶/Java & Web

[Java] String 문자열 자르기, 치환하기 – substring, replace 함수 사용

by Jordan_ 2019. 10. 8.
반응형

 

 

 

 

- Substring 함수

 

 

문자열 String 을 선언하고 해당 문자열에서 원하는 문자열을 뽑아서 쓰기 위해

 

Substring 함수를 사용할 수 있습니다.

 

함수에 int 형 인덱스 숫자를 선언하여 입력 받은 위치를 기준으로 문자열을 잘라서 리턴합니다.

 

 

 

< 문법 (Syntax) >

 

 

1.   substring(int index, int endindex)

 

2.   substring(int index)

 

 

 

< 예시 (Example) >

 

 

20191017 2315분 날짜를 문자열 date 로 선언하여 substring 함수로 문자열을 잘라서 사용할 수 있습니다.

 

String date = 201910172315

 

Index

0

1

2

3

4

5

6

7

8

9

10

11

date

2

0

1

9

1

0

1

7

2

3

1

5

 

 

String New_date = date.substring(0,4) + "/" + date.substring(4,6) + "/" + date.substring(6,8) + “ ” + date.substring(6) + “:”  + date.substring(6)

 

 

-> 출력 : 2019/10/17 23:15

 

 

 

< 설명 Description >

 

 

1>  date.substring(0,4) : 0 index부터 4 index 전까지 문자열을 자릅니다.

 

Index

0

1

2

3

date

2

0

1

9

 

 

 

2>  date.substring(0,4) + "/" : 2019 뒤에 추가하였으므로, 4 index ‘/’ 들어가게 됩니다.

 

Index

0

1

2

3

4

New_date

2

0

1

9

/

 

 

 

3>   date.substring(4,6) : 4 index부터 시작하여 6 index 전까지 문자열을 자르므로, ‘10’ 해당됩니다.

 

Index

0

1

2

3

4

5

6

date

2

0

1

9

1

0

1

 

 

결국에는 아래와 같이 Newdate 문자열에는 아래와 같이 데이터가 선언됩니다.

 

 

Index

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

New_date

2

0

1

9

/

1

0

/

1

7

 

2

3

:

1

5

 

 

 

참고로 substring(int index) 와 같이 index 하나만 선언하여 사용하면 시작점으로 보시면 됩니다.

 

해당 index 번째 data부터 시작하여 끝까지 잘라서 사용한다고 보면 됩니다.

 

위에 date 문자열로 예시를 들면, 년도를 빼고 월부터 날짜를 표시해주고자 하면,

10월이 시작되는 4번째 index부터 선언해주면 됩니다.

 

 

 

< 설명 Description >

 

String New_date = date.substring(4) //4 index 부터 문자열을 자르고, 끝의 index까지 가져온다.

 

 

Index

0

1

2

3

4

5

6

7

New_date

1

0

1

7

2

3

2

5

 

 

 

 

 

- replace()

 

 

replace는 문자열 데이터를 원하는 문자로 치환, 교체하고자 할 때 사용하는 함수입니다.

 

 

< 문법 Syntax >

 

 

Replace(CharSequence target, CharSequence replacement) : target replacement 값으로 치환

 

ReplaceAll(CharSequence target, CharSequence replacement) : target replacement 값으로 치환

(특수문자는 치환 불가)

 

ReplaceFirst(CharSequence target, CharSequence replacement) : 첫 번째 target replacement 값으로 치환

 

 

 

< 설명 Description >

 

 

전화번호가 ‘010-1234-1234’ 형태를 ‘-’ 기호를 빼고 ‘01012341234’ 형태로 만들기

 

Phonenumber = “010-1234-1234”;

 

phonenumber= phonenumber.replace("-","");

 

system.out.println(phonenumber);

 

-> 결과값 : Phonenumber = ‘01012341234’

 

 

 

< 참고 >

 

 

참고로 replaceall 함수는 자신이 바꾸고 싶은 문자로 전부 치환, 교체시켜주는 기능이 있습니다.

 

그러나 replace함수는 첫번째 인자값으로 정규식이 들어가 특수문자로도 치환이 되지만

replaceall은 특수문자 치환, 교체가 불가합니다.

 

replaceFirst처음 나오는 해당 문자만 치환, 교체해줍니다.

 

위의 경우 첫 번째 ‘010-1234-1234’ 에서 첫 번째 ‘-‘ 만 치환되어 결과는 ‘0101234-1234 출력됩니다.

 

 

추가로 한 문자열에서 한번에 여러 번 치환도 가능하며,

아래와 같이 replace를 중첩하여서 여러 번 선언하여 사용하면 됩니다.

 

 

Str_2 = Str_1.replace("{", "_").replace("}", "_").replace("\"", "\\\"");

 

->  “ 큰따옴표를 표시하려면 "\"" 표기하고, "\" 바꿔주게 선언하려면 "\\” 2개를 선언해주면 됩니다.

 

 

 

* 아래 문자열 합치는 함수  ‘+’, concat(), append() 함수 사용방법은 참고하세요.!

 

 

https://lovefor-you.tistory.com/160

 

[Java] Random() 클래스, String 문자열 합치기(concat, append, +) 사용 방법

1> Random 클래스 : 일정 범위의 값들에서 임의수 수를 선택하여 반환하는 역할 - new Random() 으로 객체 생성 - int nextInt() : 모든 int 값의 범위의 난수를 발생시켜 반환한다. ( int 전체 범위 : -2,147,483..

lovefor-you.tistory.com

 

 

저도 필요해서 찾아봐서 정리하였는데 도움이 되셨으면 해서 작성하였습니다~!

 

 

조금이나마 도움이 되셨으면 좋아요 하트♥나 댓글 부탁드립니다~!


파이팅 하시고 좋은 하루 되세요!!

 

 

728x90
반응형