簡體   English   中英

檢查字符串是否等於Android / Java中的字符串

[英]Check if string is equal to in Android/Java

我有一個Android應用程序。 我正在嘗試向我的網絡服務器發出請求,並從服務器上檢索響應。 看起來很有效。 現在我正在檢查響應是否等於成功equal()函數運行良好一段時間,似乎停止工作。

如何正確檢查輸出是否等於success

這是我嘗試過的:

if(LOGIN_AUTH.Login(usr, pwd, token).equals("success")) {
    // Server returned 'success'
    toDashboard();

}else {
    // Server returned something else then 'success'
    Alert("Error", LOGIN_AUTH.Login(usr, pwd, token));
    alert.dismiss();

    EditText password = (EditText) findViewById(R.id.login_ip_password);

    assert password != null;
    password.setText("");
}

當我發現這個問題時,我還添加了.trim()Android字符串.equals方法不起作用 我嘗試了這個解決方案,但它不適合我。

Login()函數中也修剪了輸出,如下所示:

return postResponse.trim().toString();

由於某種原因,應用程序跳過了檢查並觸發Alert()函數。 此警報向我顯示服務器返回success並且在輸出中找不到空格,特殊字符或換行符。

在此輸入圖像描述

也許.contentEquals()就是你要找的。
equals(Object o)對任何類型的數據返回true / false,取決於內容是否相等!

當且僅當此String表示與指定的StringBuffer相同的字符序列時,contentEquals(CharacterSequence cs)才返回true。 您可以在此鏈接上閱讀有關差異的更多信息。
此外, 這里也很好地描述這個功能。

嘗試記錄一下

LOGIN_AUTH.Login(usr, pwd, token)

正在回歸 它可能不會返回您認為它返回的內容。

然后,好的做法是將你的平等條件翻轉為:

"success".equals(LOGIN_AUTH.Login(usr, pwd, token))

(以避免在響應為null時獲取NullPointerException)或用戶Android平台的類名為TextUtils:

TextUtils.equals("success", LOGIN_AUTH.Login(usr, pwd, token))

如果它仍然無法正常工作,請記錄服務器響應(如上所述)並將日志發布到某處。 我會相應地更新我的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM