[Java] String.split 함수

2024. 4. 5. 13:06·Java

알고리즘 문제를 풀다 split에 대해 새로운 사실을 알게되어 글을 쓰게 됐다.

​

Java에서 split 함수를 알아보겠다.

문자열을 자르고(분할하고) 배열에 반환하고 싶을 때 많이 사용하는 함수이다.

매개변수로는 regex 즉, 정규표현식이 들어갈 수 있고

정규표현식과 limit (정수) 가 함께 들어갈 수 있다.

split함수의 매개변수와 리턴값

​

먼저 매개변수에 정규표현식만 들어간 방식이다.

String으로 선언한 aPhoneNumber 에서 "-" 기준으로 잘라

String 배열 a에 반환하는 방식이다.

실행결과는 아래와 같다.

​

​

그 다음은 limit 매개변수 까지 들어간 방식이다.

limit는 뜻 그대로 제한을 두는 매개변수 이며 문자열을 자르고 배열을 반환할 때 배열의 갯수를 제한하는 것이다.

문자열 bPhoneNumber을 잘라 문자열 배열 b에 반환하고 있는데

limit라는 매개변수를 넣어 b의 배열크기를 2로 제한했다.

실행결과는 아래와 같다.

보시는 것과 같이 b 배열안에 두개의 문자열만 들어간 것을 볼 수 있다.

​

하지만 여기서 의문이있다.

limit 매개변수에 0보다 작은 수를 넣으면 어떻게 될까라는 의문이 들 것이다.

결론부터 말하자면 limit에 -1을 넣으면 빈 문자열을 포함한 가능한 토큰(문자열)을 반환한다.

쉽게 말하면 마지막에 위치한 빈 문자열이 결과에 포함되어 반환한다.

만약 문자열이 -로 끝나는데 "-"로 기준으로 문자열을 자를 때

마지막에 토큰은 없지만 빈 문자열로 반환한다는 것이다 .

아래는 실행결과이다.

보시는 것과 같이 배열 마지막에 빈 문자열이 들어간 것을 볼 수 있다.

​

즉, 결론을 말하면

limit > 0​ : limit 갯수 만큼 부분 문자열 반환

limit ==0​ : 빈 문자열은 제외하고 가능한 모든 부분 문자열 반환(생략 가능)

limit < 0 : 빈 문자열을 포함한 가능한 부분 문자열을 반환

​

때때로 csv파일에서 마지막 값이 비어 있어도 해당 위치에 문자열을 포함시켜야하는 경우

유용하게 쓴다고 한다.

'Java' 카테고리의 다른 글

[Java] Java에서 Map (HashMap, LinkedHashMap, TreeMap), Stack, Queue란?  (0) 2025.06.22
[Java] Java에서의 Set이란? - HashSet, LinkedHashSet, TreeSet  (1) 2025.06.15
[Java] 원시 타입과 참조 타입 정리: 오토박싱과 언박싱 쉽게 이해하기  (0) 2024.09.06
[Java] 자바에서의 배열 복사 방법( arraycopy(), copyOfRange(), copyOf() )  (0) 2024.04.05
[Java] 래퍼(Wrapper) 클래스  (0) 2024.04.05
'Java' 카테고리의 다른 글
  • [Java] Java에서의 Set이란? - HashSet, LinkedHashSet, TreeSet
  • [Java] 원시 타입과 참조 타입 정리: 오토박싱과 언박싱 쉽게 이해하기
  • [Java] 자바에서의 배열 복사 방법( arraycopy(), copyOfRange(), copyOf() )
  • [Java] 래퍼(Wrapper) 클래스
Economy98
Economy98
공부하고 기록하기
  • Economy98
    Economy_Dev
    Economy98
  • 전체
    오늘
    어제
    • 분류 전체보기 (77)
      • Spring Framework (12)
      • BOJ, Programmers (22)
      • Java (6)
      • JDBC (6)
      • JPA (9)
      • Spring Transaction (3)
      • Algorithm (1)
      • Web (5)
      • Projects (2)
        • 쇼핑몰 프로젝트 (0)
        • 열람실 & 도서관 프로젝트 (2)
      • Network (2)
      • 나의 공부방 (5)
      • 끄적끄적 (1)
      • Error Log (3)
      • CS (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • Github
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    restful api
    Spring
    자바
    백준 풀이
    java
    자바 문제 풀이
    자바 문제
    스프링
    정렬
    스프링부트
    트랜잭션
    propagation
    그리디 알고리즘
    jdbc
    JPA
    예외 처리
    다이나믹 프로그래밍
    백준 자바 풀이
    브루트포스 알고리즘
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Economy98
[Java] String.split 함수

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.