我试图从CSV文件中读取对象并比较登录,如果它是我想要的那个。这是我的if代码:
FileReader file = new FileReader("MyCSV.csv");
BufferedReader entry = new BufferedReader(file);
String row;
row = entry.readLine();
do {
String[] value = linha.split(";");
if (login.equals(value[0])) { // login is passed as parameter
// do something
}
linha = entry.readLine();
} while (row != null);
我可以阅读整个文件,但如果我搜索第一个用户登录,则返回false。我也尝试过:
if (value[0].equals(login))
if (value[0] == login)
在文件中,Login是第一列,在第一列&#34 ;;"之前。 控制台中的一个例子:
System.out.println(valor[0] + " and " + login + " = " + login.equals(valor[0])); // I've put this inside the do while
结果是:
leonidas and leonidas = false
rafatcb and leonidas = false
davinci and leonidas = false
login and leonidas = false
如果我尝试使用" rafatcb":
leonidas and rafatcb = false
rafatcb and rafatcb = true // true, as expected
有人有任何想法可能对我有帮助吗? :(
我已经在Stackoverflow上找到了它,但也失败了' false'对于leonidas:
System.out.println(value[0].trim().equals(String.valueOf(login.trim())));
@Edit: 的解答: 很抱歉翻译代码,因为它有一些不一致。 在de println:
之后,我已将这些代码放在代码上 System.out.println(Arrays.toString(valor[0].toCharArray()));
System.out.println(Arrays.toString(login.toCharArray()));
结果是:
[, l, e, o, n, i, d, a, s]
[l, e, o, n, i, d, a, s]
我试图" cut"字符串: value [0] = value [0] .substring(1); ,它解决了我的问题。 对不起是一个小(或这么大)愚蠢。你们真棒!)
答案 0 :(得分:0)
由于您正在从文件中读取,因此我的变量值[0]中存在不可打印的字符。 使用
value[0].replaceAll("\0", "").equals(login)
它应该可以正常工作。