반응형
이 코드는 문자열을 토큰으로 분리하고 문자열 배열에 저장 한 다음 변수를 첫 번째 가정과 비교합니다 ... 왜 작동하지 않습니까?
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
반응형
'자바' 카테고리의 다른 글
Java에서 문자열을 되돌립니다 (0) | 2021.04.08 |
---|---|
char 배열을 다시 문자열로 변환하는 방법은 무엇입니까? (0) | 2021.04.08 |
Java에서 문자열을 길게 변환하는 방법은 무엇입니까? (0) | 2021.04.08 |
STRING에서 Java에서 문자열로 변환 / 구문 분석하는 방법은 무엇입니까? (0) | 2021.04.08 |
공간 별 문자열을 분할하는 방법 (0) | 2021.04.08 |
댓글