String split 방법 구현 프로 세 스 도해
String 의 split 방법 은 모두 가 낯 설 지 않 고 많 든 적 든 문자열 을 하나의 배열 로 바 꾼 적 이 있다 고 믿 습 니 다.그러나 이런 간단 한 방법 입 니 다.그 안에 주의 할 수 밖 에 없고 깊 지 않 은 작은 구덩이 도 있 습 니 다.
로 컬 테스트 코드 는 다음 그림 과 같 습 니 다.
그림 1
split 1 과 split 3 의 길이 가 우리 의 기대 에 부합 되 는 것 을 발견 할 수 있 습 니 다.그러나 split 2 는 길이 가 5 일 것 입 니 다.그러나 실제 길 이 는 4 입 니 다.여러분 들 이 이런 상황 에 처 했 을 때,
String 의 이 split 방법 은 분할 과 일치 하 는 조작 만 하 는 것 이 아니 라 다른 논리 적 처 리 를 했 을 것 입 니 다.예 를 들 어 마지막 빈 요 소 를 제거 해 야 합 니 다.
라 는 조작 을 했다.이런 추측 이 나 왔 으 니 소스 코드 를 계속 살 펴 보고 근원 을 찾 아 보 자.
그림 2
이 방법 은 다시 불 러 오 는 방법 을 호출 했 습 니 다.첫 번 째 매개 변 수 는 변 하지 않 았 고 두 번 째 매개 변 수 는 limit 이 0 으로 전 달 했 습 니 다.계속 거 슬러 올 라 갑 니 다.
그림 3
고 개 를 끄 덕 이 는 것 이 귀 찮 고 도저히 볼 수가 없 었 다.
생각 을 바 꾸 어 debug 를 해 보 세 요.이 마지막 빈 요소 가 어디에서 걸 러 졌 는 지 보 세 요.한 번 해 보 니 과연 사건 발생 지 를 발 견 했 습 니 다.
그림 4
이 목록 에 저 장 된 요 소 는 모두 5 개의 요소 입 니 다.아래 while 순환 에 서 는 꼬리 에서 앞으로 어떤 요소 의 길이 가 0 인지 볼 수 있 습 니 다.
첫 번 째 빈 요소 에 부 딪 힐 때 까지 0 이면 길 이 를 줄 입 니 다.이 while 순환 을 마 친 후 앞의 요 소 를 캡 처 합 니 다.
배열 로 돌아 가기.
이상 의 간략 한 분석 을 통 해 알 수 있 듯 이 String 의 split 방법 에 대해 문자열 끝 이 일치 하 는 문자 라면 자동 으로 마지막 을
빈 요 소 는 제거 되 고 문자열 의 첫 부분 에 빈 요 소 는 영향 을 받 지 않 습 니 다.
두 마디 더 하면 limit 매개 변수 에 대해 몇 번 테스트 하면 이 매개 변 수 는 되 돌아 오 는 데이터 의 최대 길 이 를 제한 하 는 것 을 발견 할 수 있 습 니 다.테스트 코드 는 다음 과 같 습 니 다:
그림 5
limit 값 을 전달 하면 끝의 빈 요 소 를 자동 으로 제거 하지 않 는 다 는 것 을 알 수 있다.구체 적 인 원인 은 그림 4 소스 코드 를 볼 수 있 고 limit 가 0 이 아니라면 if 중의 while 순환 을 가지 않 고 앞에서 말 한 상황 도 나타 나 지 않 을 것 이다.
이런 구덩이 에 대해 피 할 수 있 는 좋 은 방법 은 없다.하 나 는 자신의 지식 면 을 확대 하 는 것 이 고,다른 하 나 는 총 결 을 많이 쌓 는 것 이다.힘 내세 요!
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
알고리즘 파트 3 : 스택을 사용하여 문자열 반전얘들 아. 오늘은 스택을 사용하여 문자열을 뒤집는 방법을 보여드리겠습니다. 이 문제에서 우리는 하나의 문자열을 받았고 스택을 사용하여 그것을 뒤집어야 합니다. 해결책 이것이 도움이 되길 바랍니다. 감사합니다 ❤....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.