- Substring 함수
문자열 String 을 선언하고 해당 문자열에서 원하는 문자열을 뽑아서 쓰기 위해
Substring 함수를 사용할 수 있습니다.
함수에 int 형 인덱스 숫자를 선언하여 입력 받은 위치를 기준으로 문자열을 잘라서 리턴합니다.
< 문법 (Syntax) >
1. substring(int index, int endindex)
2. substring(int index)
< 예시 (Example) >
2019년10월17일 23시15분 날짜를 문자열 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
저도 필요해서 찾아봐서 정리하였는데 도움이 되셨으면 해서 작성하였습니다~!
조금이나마 도움이 되셨으면 좋아요 하트♥나 댓글 부탁드립니다~!
파이팅 하시고 좋은 하루 되세요!!
'IT ▶ > Java & Web' 카테고리의 다른 글
암호화에서 BASE 64 인코딩이란? (2) | 2019.10.22 |
---|---|
[Java] 인코딩, 디코딩 개념 (유니코드, EUC-KR, UTF-8) (0) | 2019.10.11 |
[Java] Random() 클래스, String 문자열 합치기(concat, append, +) 사용 방법 (0) | 2019.09.30 |
[Java] "".equals() 와 '==' 으로 Null 값 체크방식 차이 정리 (2) | 2019.07.26 |
[JavaScript] 객체, 생성자 개념 (Object, Constructor Concept) (2) | 2019.05.12 |