小编典典

String.equals 与 ==

all

这段代码将一个字符串分成标记并将它们存储在一个字符串数组中,然后将一个变量与第一个 home 进行比较......为什么它不起作用?

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");
    }
}

阅读 126

收藏
2022-03-08

共1个答案

小编典典

使用string.equals(Object other)函数来比较字符串,而不是==运算符。

该函数检查字符串的实际内容,==运算符检查对对象的引用是否相等。请注意,字符串常量通常是“内部”的,因此具有相同值的两个常量实际上可以与
进行比较==,但最好不要依赖它。

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

注意:比较是在 ‘usuario’
上完成的,因为在你的代码中保证非空,尽管你仍然应该检查你是否在datos数组中确实有一些标记,否则你会得到一个数组越界异常.

2022-03-08