java equals返回值_Java .equals()在字符串相等时返回false

我正在创建一个应用程序,如果用户已经登录,我希望应用程序自动从文本文件登录.目前,在文本文件中,我有“alex | ppp”,它与数据库条目匹配.

首先调用以下方法

private void rememberedLogIn(){

String filename = "UserInfo.txt";

String info = "";

String user = "";

String pass = "";

try{

FileInputStream fIn = openFileInput(filename);

BufferedReader r = new BufferedReader(new InputStreamReader(fIn));

info = r.readLine();

}catch(IOException e){

e.printStackTrace(System.err);

}

for(int i =0; i < info.length();i++){

if(info.charAt(i) == '|' ){

user = info.substring(0,i);

pass = info.substring(i+1);

GlobalVar.loggedIn= true;

break;

}

}

new InitialStuff().execute(user,pass);

}

我已经仔细检查了用户和传递的值,它们是“alex”和“ppp”,这是预期的.下一个InitialStuff被调用,这是相关的代码:

public class InitialStuff extends AsyncTask{

int prog = 0;

@Override

protected Toon doInBackground(String... params) {

android.os.Debug.waitForDebugger();

Toon toon = null;

Database db = new Database();

db.establishConnection();

if(db.tryLogIn(params[0], params[1])){

prog = 2;

publishProgress();

toon = db.getToonFromDB(params[0]);

prog = 4;

}else prog = 3;

publishProgress();

return toon;

}}

一旦我调用db.tryLogin()看起来像这样就会出现问题

public boolean tryLogIn(String toonName, String toonPass){

try{

while(!connected) establishConnection();

String sqlQuery = "SELECT Password FROM Toons WHERE Name LIKE '" + toonName+"';";

Statement stmt = con.createStatement();

ResultSet rSet = stmt.executeQuery(sqlQuery);

if(rSet.next()){

String dbPass = rSet.getString(1).trim();

if(dbPass.equals(toonPass)) //PROBLEM OCCURS HERE

return true;

}

}

catch(Exception e){ }

return false;

}

我已经检查过dbPass从数据库返回的是“ppp”,它匹配toonPass但是它将跳过返回true并返回false.

如果它有帮助,这是日食给我的关于这两个的信息

toonPass“ppp”(id = 830041185816)

数3

hashCode 0

抵消5

价值(id = 830041185744)

[0] a

[1] l

[2] e

[3] x

[4] |

[5] p

[6] p

[7] p

dbPass“ppp”(id = 830041708816)

数3

hashCode 0

偏移0

价值(id = 830041709136)

[0] p

[1] p

[2] p

请注意,我也尝试将“ppp”传递给tryLogin()方法,而不将其作为子字符串,以防与问题有关并且结果相同.

编辑:我解决了问题… sorta.我刚停止使用.equals()方法,而是使用for循环将每个字符串中的字符相互比较

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值