Home » Android » can't call String.isEmpty() in android

can't call String.isEmpty() in android

Posted by: admin November 29, 2017 Leave a comment

Questions:

In my android application I can’t use String.isEmpty() function which is situated in JDK 1.6. Android 2.1 lib doesn’t have this function in java.lang.String class

I tried to input JRE System library to my project, because it has this function, but there was no effects.

How can I solve this problem and allow my application to use this function?

Answers:

How can I solve this problem and allow my application to use this function?

You can’t.

Use String.length() == 0 instead. It is backwards compatible all the way back to JDK 1.0 … and with J2ME as well.

String.equals("") is another alternative.


Are you sure that there is no way to configure Eclipse to put into a code classes from definite libraries?

Not if you want your app to run on a real Android device. Java / Android platforms intentionally make it hard for you to tinker with the behaviour of the core class libraries. For a start, you can only do it by modifying the Davlik equivalent of the bootclasspath or rt.jar file, and neither of these can be done within a running JVM.

That kind of tinkering has the risk of potentially breaking Java for other apps. Even assuming that you can’t compromise Android app separation directly (because of the process/uid separation mentioned below), malicious tweaks to the (shared) Java core classes could still potentially allow one app to interfere with, or steal information from another app.

Questions:
Answers:

You can use android.text.TextUtils.isEmpty() instead. This method also checks to see if the String is null and has been available since API level 1.

if (TextUtils.isEmpty(str)) {
    Log.d(TAG, "String is empty or null!");
}

Questions:
Answers:

this method appeared in API9, so you cant use it before Android2.3

Questions:
Answers:

as far as I know android supports java 5 , so there is no isEmpty(); you can use length() to simulate isEmpty()

Questions:
Answers:

You can use this TextUtils.isEmpty(str). This is available since API level 1 or You can create you own method like below

public boolean isEmpty(CharSequence str) {
    if (str == null || str.length() == 0)
        return true;
    else
        return false;
}

Questions:
Answers:

“”.equals(yourString); also gives the same behavior like String.isEmpty();

Questions:
Answers:

You have to upgrade android API to level 9, or use String.trim().length()==0 or String.equals("") instead, it should work for your android API level and your JDK version.