このコードは、文字列をトークンに分割して文字列の配列に格納し、変数を最初のホームと比較します...なぜ機能しないのでしょうか?
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");
}
}
ベストアンサー1
使用string.equals(Object other)
文字列を比較する関数であり、==
演算子ではありません。
関数は文字列の実際の内容をチェックし、演算子==
はオブジェクトへの参照が等しいかどうかをチェックします。文字列定数は通常、同じ値を持つ 2 つの定数を実際に比較できるように「インターン化」されています==
が、それに依存しない方がよいことに注意してください。
if (usuario.equals(datos[0])) {
...
}
注意: 比較は 'usuario' で行われます。コード内で null でないことが保証されているためです。ただし、配列内に実際にトークンが含まれているかどうかは確認する必要があります。datos
そうでない場合は、配列範囲外例外が発生します。