데이터가 프로그램상에서 쓸모가 있는 값인지 아닌지를 판단하는 작업
// a(97)<=입력문자<=z(122)영문 소문자 유효성검사
System.out.print("문자를 입력해주세요. : ");
int numdata=reader.read();
System.out.println(numdata>='a'?(numdata<='z'?true:false):false);
// 한글 유효성검사
System.out.print("문자를 입력해주세요. : ");
int hangeul=reader.read();
System.out.println(hangeul>='가'?(hangeul<='힣'?true:false):false);
// 숫자 유효성검사
System.out.print("문자를 입력해주세요. : ");
int isNum=reader.read();
System.out.println(isNum>='0'?(isNum<='9'?true:false):false);
// 1. charAt(0);을 이용
System.out.print("문자를 입력해주세요. : ");
String data=reader.readLine();
char newdata=data.charAt(0);
System.out.println((int)newdata);
// 2. reader에서 int자체를 받아오는 법 -> 이 방법이 효율적
System.out.print("문자를 입력해주세요. : ");
int dataint=reader.read();
System.out.println(dataint);
String s1="홍길동";
String s2="홍";
String s3=s2+"길동"; // s3는 "홍길동"이 된다.
System.out.println(s1==s3);
// 결과는 false. 잘못된 결과가 나온다.
이런 식으로 문자열을 비교하는 것은 이렇게 잘못된 결과가 나올 수 있으므로 사용하면 안된다. 잘못된 결과가 나오는 이유는 두 값의 참조주소값이 같은지 비교하는 것이기 때문이다.
문자열이 같은지 비교할 때는 아래와 같이 코드를 작성하면 된다.
String s1="홍길동";
String s2="홍";
String s3=s2+"길동";
System.out.println(s1.equals(s3)); // 결과는 true
~ : 틸드(tild)
^ : carret, xor
` : back quote