반응형
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 |
반응형
'Basic > Java' 카테고리의 다른 글
Java 대소문자, 공백 제거, 문자열 비교 (2) | 2016.10.12 |
---|---|
Java에서 다양한 배열 선언 방법 (0) | 2016.10.12 |
Java 출력 기초 ( System.out.print, println, printf) (0) | 2016.10.12 |
자바 String 기본 함수 (0) | 2016.10.07 |
java로 달력 만들기 (요일, 윤달, 음력 포함) (0) | 2016.09.26 |