null 判定と String.length の判定を使って
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d("[checkLength] null", isNullOrZeroLength(null) + "");
Log.d("[checkLength] length 0", isNullOrZeroLength("") + "");
Log.d("[checkLength] length 5", isNullOrZeroLength("Hello") + "");
}
public boolean isNullOrZeroLength(String s) {
if(s == null) {
return true;
}
else if(s.length() == 0){
return true;
}
else {
return false;
}
}
とやればできますが、android.text.TextUtils.isEmpty(CharSequence str) を使えば null と 0-length 両方を判定してくれます。
このメソッドは引数の str が null もしくは 0-length の場合に true を返します。
このメソッドを使って書き換えると
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d("[TextUtils] null", isNullOrZeroLength(null) + "");
Log.d("[TextUtils] length 0", isNullOrZeroLength("") + "");
Log.d("[TextUtils] length 5", isNullOrZeroLength("Hello") + "");
}
public boolean isNullOrZeroLength(String s) {
return TextUtils.isEmpty(s);
}
それぞれの出力
D/[checkLength] null(22715): true
D/[checkLength] length 0(22715): true
D/[checkLength] length 5(22715): false
D/[TextUtils] null(22715): true
D/[TextUtils] length 0(22715): true
D/[TextUtils] length 5(22715): false
String.isEmptyはjava6だから諦めてましたが、TextUtilsにあるのは知らなかったです。ありがとうございます^^
返信削除API Level 9 から String.isEmpty() も追加されてます。
返信削除http://developer.android.com/reference/java/lang/String.html#isEmpty()
null も判定してくれるのかどうかまではチェックしてません ><