• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

back, back 이해가 안됩니다

21.02.22 15:58 작성 조회수 95

0

outputText.Length 에서 5를 뽑아서

적은값 2를 빼서 

전체길이에서 뒷자리가 빠진건 알겠는데용

outputText.Length - back , back

에서 back 은 왜 또 들어가는 건가용?

저걸 지우니까 0을 넣으면 에러가 나던데

5-0 이면 그냥 5자리가 다 나와야 되는거 같은데

왜 에러가 나는거죵

답변 2

·

답변을 작성해보세요.

0

slam_poet님의 프로필

slam_poet

질문자

2021.02.26

아 결국은 3 , 5 인거네요   3번째 자리부터 5자리 지워라

remove의 조건값이 두개인거라서 그런거군요

네 맞습니다.

이해력이 좋으시네요 :)

0

안녕하세요

질문자님,

모든 실력은 질문이 생기는 부분부터 시작합니다.

궁금하신 부분은 다음과 같이 이해에 도움을 드릴 수 있을 것 같습니다.!

설명이 조금 길 수도 있습니다.

제일 처음 값을 입력하게 되면 다음과 같습니다.

이해를 돕고자 문자에 인덱스(순번)을 표기하였습니다.

위의 이미지를 소스코드와 연결해서 보면 아래 그림과 같습니다.

inputText변수에는 "궁금증을 풀어드립니다." 0부터 11까지의 인덱스를 가진 문자가 들어가있으며,

front 에는 앞에서 제거할 문자열 인덱스 4, back에는 뒤에서 제거할 문자열 인덱스 5가 들어가 있습니다.

Remove는 문자열을 제거해주는 함수로, 인덱스는 0부터 작동합니다.

위의 코드는 Remove를 사용하여 4자리 만큼 입력한 문자인 "궁금증을" 제거 하였습니다.

그러면 남은 문자는 다시 0부터 인덱스가 시작하여 아래의 모양이 됩니다.

이제 질문을 주신 back이 두번들어가는 부분에 대한 답변입니다.

outputText에는 " 풀어드립니다."(공백도 한자리로 인식합니다.)가 들어가있습니다.

Remove는 0부터 시작하고, 우리는 뒷자리만 자르고 싶습니다.

그럼 outputText의 문자가 몇글자가 들어있는지 알아야겠죠?

여기에서는 Length를 통해 문자의 갯수를 구했습니다.

위의 코드에서 outputText.Length는 8이 나오게 됩니다.

(0부터 7까지 갯수를 구하면 8되니 우리가 생각한 대로 작동하고 있군요.)

그럼 8 - 5는 3이되고, Remove는 3부터 시작해서 5자리까지 문자를 제거하게 됩니다.

Remove(3(시작 값), 5(제거할 문자열 수))

문자열에 인덱스를 보면 이렇게 3부터 5자리까지인 7까지 문자를 제거합니다.

그럼 결과는 아래와 같이 공백을 포함한, " 풀어"가 남아있어야겠죠?

실행된 결과의 문자열을 보니 공백을 포함하여 의도했던대로 작동한 것을 확인할 수 있습니다.

한번에 이해가 안되더라도 천천히 하나씩 보시다보면,

어느순간 이해가 되니 궁금한 점이 있으면 남겨주시고 편하게 학습하시길 바랍니다.

고맙습니다.

박병욱 드림 :)