본문 바로가기
자바

string.equals 대 ==.

by º기록 2021. 4. 8.
반응형

이 코드는 문자열을 토큰으로 분리하고 문자열 배열에 저장 한 다음 변수를 첫 번째 가정과 비교합니다 ... 왜 작동하지 않습니까?

public static void main(String...aArguments) throws IOException {

    String usuario = "Jorman";
    String password = "14988611";

    String strDatos = "Jorman 14988611";
    StringTokenizer tokens = new StringTokenizer(strDatos, " ");
    int nDatos = tokens.countTokens();
    String[] datos = new String[nDatos];
    int i = 0;

    while (tokens.hasMoreTokens()) {
        String str = tokens.nextToken();
        datos[i] = str;
        i++;
    }

    //System.out.println (usuario);

    if ((datos[0] == usuario)) {
        System.out.println("WORKING");
    }
}

 

해결 방법

 


함수는 문자열의 실제 내용을 검사하고 == 연산자는 오브젝트의 참조가 동일한 지 여부를 확인합니다.문자열 상수는 일반적으로 동일한 값을 가진 두 개의 상수가 실제로 == 와 비교 될 수 있지만 그에 의지하지 않는 것이 좋습니다.

if (usuario.equals(datos[0])) {
    ...
}

NB : 코드에서 null이 아닌 것으로 보장되지만 datos 배열에 실제로 일부 토큰이 있는지 확인해야합니다.배열 아웃 경계 예외.

 

참조 페이지 https://stackoverflow.com/questions/767372

 

 

반응형

댓글