Muhammad Maqsoodur Rehman
Muhammad Maqsoodur Rehman

Reputation: 34287

Why StringUtils Apache class is not recognized in Android?

Why import org.apache.commons.lang.StringUtils cannot be imported in android by default.

Do i have to include an external library? Then where can i find that library on the web?

package com.myapps.urlencoding;

import android.app.Activity;
import org.apache.commons.lang.StringUtils;

public class EncodeIdUtil extends Activity {
    /** Called when the activity is first created. */
     private static Long multiplier=Long.parseLong("1zzzz",36);

        /**
         * Encodes the id.
         * @param id the id to encode
         * @return encoded string
         */
        public static String encode(Long id) {
            return StringUtils.reverse(Long.toString((id*multiplier), 35));
        }

        /**
         * Decodes the encoded id.
         * @param encodedId the encodedId to decode
         * @return the Id
         * @throws IllegalArgumentException if encodedId is not a validly encoded id.
         */
        public static Long decode(String encodedId) 
            throws IllegalArgumentException {
            long product;
            try {
                product = Long.parseLong(StringUtils.reverse(encodedId), 35);
            } catch (Exception e) {
                throw new IllegalArgumentException();
            }
            if ( 0 != product % multiplier || product < 0) {
                throw new IllegalArgumentException();
            }
            return product/multiplier;
        }
}

Upvotes: 17

Views: 26729

Answers (5)

Prateek Gupta
Prateek Gupta

Reputation: 158

just add following dependency in module level gradle file(build.gradle)

implementation  'org.apache.commons:commons-lang3:3.7'

Upvotes: 4

Aniket Thakur
Aniket Thakur

Reputation: 69035

If you are using Android Studio try to use workflow provided to add dependencies rather than manually adding the downloaded library or manually changing gradle files.

  1. File -> Project Structure -> Modules -> app -> Dependencies Tab
  2. Click '+' in the bottom left corner and select "Library dependency"
  3. In the search field type: "org.apache.commons:commons-lang3" and click Search
  4. Select "org.apache.commons:commons-lang3:3.7"

enter image description here

Upvotes: 4

VectorVortec
VectorVortec

Reputation: 719

You don't say whether you are using Eclipse or Android Studio. In Android Studio, you would add,

import org.apache.commons.lang3.StringUtils;

to your source code file. In build.gradle, you need to change your dependency from something like,

dependencies {
    compile 'com.android.support:support-v4:+'
}

to

dependencies {
    compile 'com.android.support:support-v4:+'
    compile  'org.apache.commons:commons-lang3:3.0'
}

In other words, you would add to the dependency.

Upvotes: 34

Alex
Alex

Reputation: 5979

Android offers a subset of that functionality in android.text.TextUtils.

Depending on what you need from StringUtils, that might be an option. E.g., it has join, split.

Upvotes: 13

wds
wds

Reputation: 32303

Apache Commons lang is a separate library. You can find it here.

Upvotes: 6

Related Questions