강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

문제와 풀이1

array 문제풀이 2번 질문입니다.

작성

·

24

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요

화면 캡처 2026-01-19 100337.png.webp

 

질문을 보면 사용자에게 정수를 받는 다는 전제일 때, 입력값이 12345 이면 1,2,3,4,5으로 나오지만

34567 로 정수값을 입력하면 출력값이 3,4,567 로 나오는데 도저히 해답이 생각 안나서요ㅠ 어떻게 코드를 수정해야 다른 정수들을 넣어도 4,5,6,7,8 <<이런식으로 나올 수 있을까요?

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 이혜원님.

질문하신 내용은 Java의 배열과 반복문을 활용하여 입력받은 정수를 출력할 때 발생하는 문제로 보입니다. 입력된 값이 34567일 경우, 3, 4, 567이 아니라 3, 4, 5, 6, 7로 출력되도록 하는 방법을 살펴보겠습니다.

문제의 원인은 사용자가 입력하는 값(34567)을 정수형으로 처리하면서 한 자리씩 처리하지 않는 데 있습니다. Scanner에서 nextInt()를 사용하여 입력을 받으면, 공백을 기준으로 정수를 읽기 때문에 숫자 34567을 하나의 정수로 인식하게 됩니다.

이 문제를 해결하기 위해서는 문자열로 입력을 받아 각 문자를 숫자로 변환하여 배열에 추가해야 합니다. 이를 위해서 next()를 이용해 문자열로 먼저 입력받고, 이를 한 글자씩 쪼개 숫자로 변환해 배열에 넣는 방식을 사용할 수 있습니다.

아래와 같이 수정할 수 있습니다:

import java.util.Scanner;

public class ArrayEx {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("5개의 정수를 입력하세요:");
        String input = scanner.next(); // 문자열로 입력받기

        int[] numbers = new int[input.length()];

        for (int i = 0; i < input.length(); i++) {
            numbers[i] = Character.getNumericValue(input.charAt(i));
        }

        System.out.println("출력:");
        for (int i = 0; i < numbers.length; i++) {
            System.out.print(numbers[i]);
            if (i < numbers.length - 1) {
                System.out.print(",");
            }
        }
    }
}

이 코드는 입력을 문자열로 받기 때문에 사용자가 34567을 입력하더라도 각 숫자가 개별적으로 배열에 저장되며, 올바르게 출력됩니다.

위 코드와 함께, 관련된 개념을 설명하는 기존 답변이 도움이 될 수 있습니다. 비슷한 문제를 다룬 게시물 “문제와풀이1 문제2번 질문”에서는 출력 포맷과 관련된 다른 문제 해결 방법에 대해 논의하고 있습니다. 이를 참고하여 추가적인 이해를 얻을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기