[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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바