본문 바로가기
JAVA

문자열 비교 equals() VS 숫자열 비교 ==

by helloissue 2021. 10. 9.

자바에서 입력받은 문자열을 비교하여, 분기 처리를 하고 있는데 정확히 입력을 했음에도 불구하고 입력된 대로 출력이 되지 않습니다. 이럴 때 꼭 참고해야 할 문자와 숫자의 비교를 알아보겠습니다.

자바문자열-숫자비교
자바문자열-숫자비교

1. 문자열 비교의 잘못된 예

아래의 코드처럼 문자열을 비교할 때에는 ==로 비교를 하게 되면 잘못된 결과를 가져오게 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
Scanner scan  = new ScannerSystem.in );
String  sYN     = null;
System.out.println( "Y/N 둘중아무거나 입력하세요" ); sYN = scan.next();
 
if"Y" == sYN ){
System.out.println( "입력은 Y 입니다." );
}else{
System.out.println( "입력은 N 입니다." );
}
//   Y/N 둘중아무거나 입력하세요  
//   Y
//   입력은 N 입니다.
cs

 

2. 문자열 비교의 올바른 예

 

==는 숫자를 비교할 때에만 사용합니다. 대신에 문자열은 equals()를 사용합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
Scanner scan = new ScannerSystem.in );
String  sYN     = null;
System.out.println("Y/N 둘중아무거나 입력하세요"); sYN    = scan.next();
//if( "Y" == sYN ) {
if("Y".equals( sYN )){
System.out.println("Y입니다.");
}else {
System.out.println("N입니다.");
}
//     Y/N 둘중아무거나 입력하세요
//     Y
//     Y입니다.
cs

 

마치면서 ..   '렙'은  '북치기-박치기'만 잘하면 됩니다. 자바는 문자열 비교, 숫자열 비교만 잘하면 됩니다. 문자열은 equals(), 숫자는 ==로 생각하면 오랫동안 실수하지 않고 기억에도 오래 남습니다. 도움이 되셧다면 하트부탁드립니다.

 

댓글