해결된 질문
작성
·
329
0
제가 의도하는 것은 str2가 배열 20개를 가지고 각각의 배열에 주어진 알파벳 텍스트 한 자씩 들어가야 하는데
왜 2개만 만들어 져서 의도하지 않은 "t y u i"가 들어가는지 의문이 풀리지 않고 있습니다.
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
사진 속 코드와 디버그 결과를 보면 str2
배열이 의도하신 대로 20개의 알파벳으로 구성되어야 하는데, 현재는 두 개의 문자열로 나누어져 있고 “t y u i”와 같은 의도하지 않은 값이 할당되었다는 것을 이야기하시는 것 같습니다.
split
메소드는 String을 주어진 구분자로 나누어 배열로 반환하는 함수입니다만, 이 메소드가 예상과 다르게 작동하고 있다면, 사용하신 구분자나 split
메소드를 호출하는 방식에 문제가 있을 수 있습니다. split
메소드는 구분자가 정규 표현식으로 해석되기 때문에, 만약 구분자에 특별한 문자(+
, *
, [
, ]
등)가 포함되어 있으면 그 문자들을 리터럴 문자로 인식시키기 위해 이스케이프(\
)를 사용해야 합니다. 또한 구분자가 문자열 내의 구성 요소와 일치하지 않아 생기는 문제일 수도 있습니다.
실제 코드 내용을 확인하지 못하는 관계로, 구체적인 수정 방안을 제시하기는 어렵지만, 다음의 점검 사항을 확인하시기 바랍니다:
str_a
내용과 정확히 일치하는 구분자를 사용했는지 확인하세요.split("\\.")
과 같이 작성해야 합니다.split
메소드는 빈 문자열에 대해서는 배열을 반환하지 않을 수 있기 때문에, 예상치 못한 결과가 나올 수 있습니다. 이런 점을 고려하여 코드를 검토하세요.위의 사항들을 점검해보시고 여전히 문제가 해결되지 않는다면, str_split10
메소드의 구현 부분을 다시 한 번 확인해보시기 바랍니다. 필요하다면 질문하신 내용에 구체적인 코드를 포함해 문의하시면 더 정확한 답변을 드릴 수 있을 것 같습니다.