Q. Java 프로그래밍 질문입니다

호르니 2019. 04. 10.


java awt 프로그래밍 중 문제가 발생하여 질문드립니다.

원인이 되는 부분만 추려보자면

ta = new TextArea("0");

(중간부분에도 코드가 있습니다.)

String a=ta.getText();

System.out.println(a);

if(a=="0") {

System.out.println("true");

a=K;}

이런 부분에서 문제가 발생하는데 a를 출력하는 부분에서 0이 나옴에도 불구하고 밑의 true를 출력하는 코드가 실행이 되지 않네요 원인이 무엇일까요

공유하고 보상받기 ♥︎
댓글 0

1개의 답변이 있습니다.

질문자 & 큐레이터 채택
프알못 답변자인증
익스트림 QA팀 2019. 04. 10 100%의 채택

자바의 자료형은 크게 기본형참조형으로 나눌 수 있습니다.

자바는 기본형이 boolean char byte short int long float double로 8가지가 끝입니다.

기본형은 변수 자체에 값이 있는 것이고, 참조형은 값은 다른 데 있는데 그 값이 있는 곳의 주소를 저장합니다.

문자열(String)은 참조형입니다. 변수에 값이 아니라 주소가 저장됩니다. ==은 값이 아닌 주소를 비교합니다.

ta.getText()의 값이 "0"이라도 그 값이 있는 주소가 다르기 때문에 ==으로 비교하면 항상 다르다고 합니다.

문자열을 비교할 때는 str1 == str2가 아니라, str1.equals(str2)로 해야 합니다.

if(a=="0") 대신에 if("0".equals(a))로 바꾸시면 되겠습니다.

댓글 0