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 も判定してくれるのかどうかまではチェックしてません ><