반응형



System.in.read()를 통해 스트링을 판단하는 코드이다.


아래 코드는 userName 스트링에 입력된 값과 입력 값이 같다면 등록되어있다고 출력하고, 그렇지 않다면 등록되어 있지 않다고 출력한다.


소스코드에 주석을 통해 자세한 내용을 수록하였다.






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.io.IOException;
 
class Jmain{
    
    public static void main(String []args)
    {
        String userName = "crocus";
        String input = "";
        
        int key;
        
        /*
         *  System.in.read() :: 한 문자씩 받아들이는 함수
         *  != 13의 의미 :: 13은 아스키 코드로 엔터를 의미하기에 
         *  엔터를 받기 전까지 계속 돈다는 것이다.
         *  
         *  ** System.in.read()는 try / catch문을 이용해야 한다.
         *  ** try / catch문은 항상 {}를 필요로한다.
         *  ** 한줄로 끝나는 문장이어도
         *  ** catch(~~) { ~ }를 해주어야 한다.
         *  
         *  Character.toString(char c) :: char형 값을 스트링으로 변환시켜준다.
         *  결국 key는 int형이니 형변환을 통해 key(현재 아스키 코드값이 담긴 변수)를
         *  (char)을 통해 스트링형으로 변환시키고 input String에 추가해준다.
         *  
         *  ** 마지막 catch문에서는 에러나기까지의 로그를 알아내준다.
         *  
         *  참고로 아스키 코드를 기반으로 제작되었기에 한글을 입력시 제대로 동작하지 않는다.
         *  
         */
        try
        {
            System.out.print("이름 :: ");
        
            while((key = System.in.read()) != 13)
                input += Character.toString((char)key);
        }
 
        catch(IOException e)
        {
            e.printStackTrace();
        }
    
        /*
         * equals() :: ()사이 들어간 값과 String값이 같은지 확인해준다.
         * 맞으면 1 틀리면 0을 리턴한다. 
         */
        if(userName.equals(input))
            System.out.println(input + "님은 현재 등록되어 있습니다.");
        
        else
            System.out.println(input + "님은 현재 등록되지 않으셨습니다.");
    }
    
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus


반응형