자바 10진수 입력 -> 16진수 출력하기

조회수 2051회

배열을 이용해서 10진수를 16진수로 출력해야하는데 scanner로 값입력받고 if문에서 출력해줄때 에러가납니다. 한번 봐주시면 감사하겠습니다.

==================================

    private static int count;

    private static Object intput;



    public static void main(String[] args) {

        // TODO Auto-generated method stub

         Scanner scanner = new Scanner(System.in);


            char[] hex_out = new char[4];



            int remainder = 0;


            System.out.println("1~20000사이 정수값을 입력하세요");



            int x = scanner.nextInt();

                    for (int i=0; i<4; i++) {

                           remainder = x%16;
                           x=x/16;


                 if (remainder>9) {
                   hex_out[3-i] = (char)(remainder-10+'A'); 

                                   System.out.println("" + hex_out[str.charAt(i)]);  
                                   //scan으로 값입력까지는 잘되는데 이부분에서 에러가납니다. 

                    }

                                   else if (remainder<10) {
                                hex_out[i] = (char)(remainder-0); 

                            System.out.println("" + hex_out[str.charAt(i)]);
                        }   
          }
    }
}

2 답변

  • System.out.println("" + hex_out[str.charAt(i)]);  
    //scan으로 값입력까지는 잘되는데 이부분에서 에러가납니다. 
    

    str.charAt(i) 에서 str라는 변수가 코드 어디에도 선언되어 있지 않네요.

    근데 변수가 없어서 컴파일 에러가 발생할텐데 scan으로 값이 입력된다는게 이상하네요~

  • 아 str은 String str = " korea";

    위에 선언했었는데 앞에 다른출력

    코드좀 지우고 올리다 지웠었네요

    값을 입력하세요 까지는뜨고 입력하면 에러가 나는 상황입니다

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)