Java/Java Tip

[Java] Scanner를 통해 문자를 입력 받는 방법 : CharAt(String -> Char 변환)

balabala 2021. 5. 9. 12:20
728x90
SMALL

Scanner는 문자를 입력받는 기능이 존재하지 않는다. 그러므로 문자 1개를 입력받고자 하는 경우에는 문자열로 입력을 받은 후 문자로 변환하면 된다. 변환 과정으로는 다음 그림과 같다.

 

 

그림1. String -> char 변환 과정

 

Java문자열에 속하는 문자는 왼쪽부터 오른쪽 끝까지 0부터 시작하여 인덱싱 되어 있으며, CharAt은 Index로 주어진 값에 해당하는 문자를 리턴하는 Java String Class의 메서드이다. 코드로 하면 다음과 같다.

import java.util.*;

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

        System.out.print("문자열 입력 >>");
        String str = scanner.nextLine();
        // Ex. 입력 : Hello
        char c = str.charAt(0); // 0번째 인덱스 : 'H'
        System.out.println("c : " + c);
        System.out.println(str.charAt(1)); // 1번째 인덱스 출력 : 'e'

        scanner.close();
    }
}
 

 

SMALL

만약 마지막 인덱스를 출력하고자 한다면 다음과 같이 하면 된다.

import java.util.*;

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

        System.out.print("문자열 입력 >>");
        String str = scanner.nextLine();
        // Ex. 입력 : Hello
        char c = str.charAt(str.length()-1); // str의 마지막 인덱스 출력 : 'o'
        System.out.println("c : " + c);

        scanner.close();
    }
}
 

 

다음은 문자열 전체를 CharAt을 사용해 문자 하나하나씩 출력하는 방법이다.

import java.util.*;

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

        System.out.print("문자열 입력 >>");
        String str = scanner.nextLine();
        // Ex. 입력 : Hello
        for(int i=0; i<str.length(); i++){
            System.out.print(str.charAt(i) + " ");
        }
        System.out.println();

        scanner.close();
    }
}

 

728x90
LIST