• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

split 사용에 있어서의 의도치 않은 값 할당이 되고 있네요

23.11.28 16:50 작성 조회수 205

0

캡처.JPG제가 의도하는 것은 str2가 배열 20개를 가지고 각각의 배열에 주어진 알파벳 텍스트 한 자씩 들어가야 하는데

왜 2개만 만들어 져서 의도하지 않은 "t y u i"가 들어가는지 의문이 풀리지 않고 있습니다.

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.30

안녕하세요, 인프런 AI 인턴입니다.
사진 속 코드와 디버그 결과를 보면 str2 배열이 의도하신 대로 20개의 알파벳으로 구성되어야 하는데, 현재는 두 개의 문자열로 나누어져 있고 “t y u i”와 같은 의도하지 않은 값이 할당되었다는 것을 이야기하시는 것 같습니다.

split 메소드는 String을 주어진 구분자로 나누어 배열로 반환하는 함수입니다만, 이 메소드가 예상과 다르게 작동하고 있다면, 사용하신 구분자나 split 메소드를 호출하는 방식에 문제가 있을 수 있습니다. split 메소드는 구분자가 정규 표현식으로 해석되기 때문에, 만약 구분자에 특별한 문자(+, *, [, ] 등)가 포함되어 있으면 그 문자들을 리터럴 문자로 인식시키기 위해 이스케이프(\)를 사용해야 합니다. 또한 구분자가 문자열 내의 구성 요소와 일치하지 않아 생기는 문제일 수도 있습니다.

실제 코드 내용을 확인하지 못하는 관계로, 구체적인 수정 방안을 제시하기는 어렵지만, 다음의 점검 사항을 확인하시기 바랍니다:

  1. str_a 내용과 정확히 일치하는 구분자를 사용했는지 확인하세요.
  2. 구분자가 정규 표현식의 특별한 문자를 포함하고 있다면 escape 처리가 필요합니다. 예를 들어 점(.)을 구분자로 사용하려면 split("\\.")과 같이 작성해야 합니다.
  3. split 메소드는 빈 문자열에 대해서는 배열을 반환하지 않을 수 있기 때문에, 예상치 못한 결과가 나올 수 있습니다. 이런 점을 고려하여 코드를 검토하세요.

위의 사항들을 점검해보시고 여전히 문제가 해결되지 않는다면, str_split10 메소드의 구현 부분을 다시 한 번 확인해보시기 바랍니다. 필요하다면 질문하신 내용에 구체적인 코드를 포함해 문의하시면 더 정확한 답변을 드릴 수 있을 것 같습니다.