나 그동안 split 잘 몰랐네?

워니·2023년 4월 5일

JAVA

목록 보기
1/1
post-thumbnail

예제코드를 타이핑하며 이해하는 과정에서

String[] split = command.split("\\?", 2);

해당 코드를 만나게 되었다
해당 코드를 보고 백슬래쉬 2개와 ? 하나로 이루어진 구분자를 사용하는줄알았다
뒤에 limit 라고되어있는 매개변수는 뭐지 ?

?????

수박 겉핥기 식 공부는 탄로났다.

그래서 알아보자


구분자 너 뭔데 ?

JAVA의 split 메서드의 경우 정규 표현식을 사용해서 문자열을 분할 한다
그 말은 즉슨 split 메서드의 매개변수인 구분자도 정규표현식으로 표현된다.

허나 정규표현식에 일부 문자는 메타문자로 사용되는데 물음표가 바로 메타문자에 속한다.
메타문자를 문자 그대로 인식할려면 이스케이프 처리를 해야한다고 한다.

??????? 이스케이프 ????????

허나 나같은 초보도 이해하기 편하게 자바에서는 이스케이프 문자로 역슬래시를 사용함면된다
한마디로 정의 하자만 메타문자인 물음표앞에 역슬래시 2개를 붙여주면 일반 문자로 인식하게 된다 ?

한마디로 정의하겠습니다.
만약에 split메서드의 구분자로 정규표현식에서 메타 문자가 사용된다면 역슬래시를 사용하여 이스케이프 처리해야합니다.
내가 사용한 물음표의 경우 "\\?"와 같이 작성하여야 물음표를 기준으로 split이 된다 이거야~


limit 넌 뭔데?

예제 코드를 통해 살펴보자

String str = "apple,banana,grape,orange";
String[] fruits = str.split(",", 2); // 최대 2개의 문자열로 분할
for (String fruit : fruits) {
    System.out.println(fruit);
}

결과

apple
banana,grape,orange

limit을 2로 정의하게되면 구분자를 기준으로 최대 2개의 문자열로 분할되게된다
정의하지 않거나 음수값을 지정하면 제한이 업시 모든 문자열이 구분자를 기준으로 분할되게된다
limit는 0으로 설정되어있고 기입하지 않으면 0이지

"공부를 안한 내 탓이오."
"허나 모르는것은 죄가 아니다. 알려고 하지않는 것이 죄인것"

profile
Backend-Dev

0개의 댓글