在我尝试AsyncTask
时,我从服务器获取电子邮件地址。在onPostExecute()
我必须检查电子邮件地址empty
或null
。我使用以下代码进行检查:
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
但在我的Toast
中,我看到null
已打印出来。我的完整代码:
private class LoadPersonalData extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected Void doInBackground(String... res) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("user_id", PrefUserName));
params.add(new BasicNameValuePair("type", type_data));
JSONObject json = jsonParser.makeHttpRequest(Url, "POST", params);
String result = "";
try {
result = json.getString("message");
} catch (JSONException e) {
e.printStackTrace();
}
if (result.equals("success")) {
try {
userEmail = json.getString("email");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
}
如何检查null
和empty
字符串?提前谢谢。
答案 0 :(得分:119)
TextUtils.isEmpty( someString )
String myString = null;
if (TextUtils.isEmpty(myString)) {
return; // or break, continue, throw
}
// myString is neither null nor empty if this point is reached
Log.i("TAG", myString);
备注强>
答案 1 :(得分:53)
来自@Jon Skeet评论,String
值确实为"null"
。以下代码解决了它
if (userEmail != null && !userEmail.isEmpty() && !userEmail.equals("null"))
答案 2 :(得分:14)
检查空字符串是否等于null,长度为零或包含“null”字符串
public static boolean isEmptyString(String text) {
return (text == null || text.trim().equals("null") || text.trim()
.length() <= 0);
}
答案 3 :(得分:8)
哟可以用这个检查:
if(userEmail != null && !userEmail .isEmpty())
请记住,您必须使用上述完全相同的代码。因为如果userEmail.isEmpty()
为空,确保您不会从userEmail
获得空指针异常
以上描述,它仅在Java SE 1.6之后可用。检查以前版本的userEmail.length() == 0
的更新:强>
使用isEmpty(stringVal)
类的TextUtils
方法:
if (TextUtils.isEmpty(userEmail))
答案 4 :(得分:2)
如果使用 Kotlin:-
if (TextUtils.isEmpty(userEmail).not()) {
// do your work
} else {
// can show error message userEmail is empty
}
如果使用 Java:-
if (!TextUtils.isEmpty(userEmail)) {
// do your work
} else {
// can show error message userEmail is empty
}
答案 5 :(得分:1)
你可以用实用方法&#34; isEmpty&#34;来检查它。来自TextUtils,
isEmpty(CharSequence str)方法检查两个条件,为null和length。
public static boolean isEmpty(CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
答案 6 :(得分:1)
如果你检查null或空字符串,那么你可以尝试这个
if (createReminderRequest.getDate() == null && createReminderRequest.getDate().trim().equals("")){
DialogUtility.showToast(this, ProjectUtils.getString(R.string.please_select_date_n_time));
}
答案 7 :(得分:0)
您所能做的就是在空字符串文字上调用equals()方法并传递您正在测试的对象,如下所示:
String nullString = null;
String empty = new String();
boolean test = "".equals(empty); // true
System.out.println(test);
boolean check = "".equals(nullString); // false
System.out.println(check);
答案 8 :(得分:0)
我测试字符串是否为空的简单解决方案:
如果(s.equals(“ null”)){ ..... }
有两种情况。
(类型为String的)变量为null(不存在): ==有效。
变量的值为空, * .equals(“ null”)给出正确的布尔值。
答案 9 :(得分:0)
检查空字符串的正确方法。
1.速度更快但不是空安全,如果字符串为空,它会抛出NullPointEreexception
if str.isEmpty() then
2.它也更快但不是空安全。
if String.length() = 0 then
3.它没有前两个快,但它是空安全的。
if "".equals(str) then
4.第四种
TextUtils.isEmpty(myString)
5. 如果要检查空字符串。
StringUtils.isEmpty(nullString)
6. 如果您想同时检查空字符串和空字符串
if (str == null || str.length() == 0)
答案 10 :(得分:-1)
这对我有用
EditText etname = (EditText) findViewById(R.id.etname);
if(etname.length() == 0){
etname.setError("Required field");
}else{
Toast.makeText(getApplicationContext(),"Saved",Toast.LENGTH_LONG).show();
}
或将其用于字符串
String DEP_DATE;
if (DEP_DATE.equals("") || DEP_DATE.length() == 0 || DEP_DATE.isEmpty() || DEP_DATE == null){
}
答案 11 :(得分:-1)
如果给出的所有答案均无效,请尝试
String myString = null;
if(myString.trim().equalsIgnoreCase("null")){
//do something
}