All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.agiletestingframework.toolbox.util.StringUtil Maven / Gradle / Ivy

package com.agiletestingframework.toolbox.util;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.RandomUtils;

public class StringUtil {
    public static List getAlphabetLowerCase() {
        int LOWER_A = 97;
        int LOWER_Z = 122;
        return getListOfChars(LOWER_A, LOWER_Z);
    }

    public static List getAlphabetUpperCase() {
        int UPPER_A = 65;
        int UPPER_Z = 90;
        return getListOfChars(UPPER_A, UPPER_Z);
    }

    public static List getListOfChars(int start, int end) {
        List stringList = new ArrayList();
        for (int i = start; i <= end; i++) {
            stringList.add(Character.toString((char) i));
        }
        return stringList;
    }

    public static String makeFileNameLegal(String fileName) {
        String answer = fileName;

        // http://stackoverflow.com/questions/1155107/is-there-a-cross-platform-java-method-to-remove-filename-special-chars
        // Explanation:
        // [a-zA-Z0-9\\._] matches a letter from a-z lower or uppercase,
        // numbers, dots and underscores
        // [^a-zA-Z0-9\\._] is the inverse. i.e. all characters which do not
        // match the first expression
        // [^a-zA-Z0-9\\._]+ is a sequence of characters which do not match the
        // first expression
        // So every sequence of characters which does not consist of characters
        // from a-z, 0-9 or . _ will be replaced.

        answer = StringUtils.trimToEmpty(answer);
        answer = answer.replaceAll("[^a-zA-Z0-9\\._]+", "_");
        if (StringUtils.isBlank(answer)) {
            answer = "make_legal" + DateUtil.timeStampAsString();
        }
        return answer;
    }

    public static String createIndexedMapKey(String valueToConvert, int index) {
        String value = StringUtils.trimToEmpty(valueToConvert);
        if (StringUtils.isBlank(value)) {
            value = StringUtils.EMPTY + index;
        } else {
            value = StringUtils.replace(value, "\n", " ");
            value = StringUtils.replace(value, " ", "-");
            value = StringUtils.lowerCase(value);
        }
        return value;
    }

    public static boolean isNotEmpty(List list) {
        return list != null && list.size() > 0;
    }

    public static boolean isNotEmpty(Map map) {
        return map != null && map.size() > 0;
    }

    public static String getMapStringValue(Map map, String key) {
        return getMapStringValue(map, key, StringUtils.EMPTY);
    }

    public static String getMapStringValue(Map map, String key, String defaultValue) {
        String answer = StringUtils.trimToEmpty(map.get(key));
        answer = StringUtils.isEmpty(answer) ? defaultValue : answer;
        return answer;
    }

    public static String generateRandomnumber(int firstNum, int restNum) {
        Random random = new Random(System.currentTimeMillis());
        String first = String.valueOf(random.nextInt(firstNum));
        String rest = String.valueOf(random.nextInt(restNum));
        return first + rest;
    }

    public static String generateUniqueString(String prefixString) {
        return generateUniqueString(prefixString, 0, 15);
    }

    public static String generateUniqueString(String prefixString, int start, int end) {
        return StringUtils.substring(prefixString + UUID.randomUUID().toString(), start, end);
    }

    public static String randomPhone() {
        Random random = new Random(System.currentTimeMillis());
        String firstNum = String.valueOf(random.nextInt(9));
        String restNum = String.valueOf(random.nextInt(999999999));
        return firstNum + restNum;
    }

    /**
     * 

* Generates a unique string not longer than a max length. *

* * @param prefixString * Prepended to the generated unique string * @param maxLength * Generated string is guaranteed not to be longer than this max * length. * @return - unique string */ public static String uniqueString(String prefixString, int maxLength) { return uniqueString(prefixString, 0, maxLength); } /** *

* Generates a unique string. *

* * @param prefixString * Prepended to the generated unique string * @return - unique string */ public static String uniqueString(String prefixString) { return uniqueString(prefixString, 0, Integer.MAX_VALUE); } /** *

* Generates a unique string and appends to your prefix. Then substrings * this new string according to the int parameters. *

* * @param prefixString * Prepended to the generated unique string * @param start * See {@link StringUtils#substring(String, int, int)} * @param end * See {@link StringUtils#substring(String, int, int)} * @return - unique string */ public static String uniqueString(String prefixString, int start, int end) { return StringUtils.substring(prefixString + UUID.randomUUID().toString(), start, end); } /** * Creates a name looking something like "Tbxau Pdsaddwe". * * @return - random name */ public static String randomName() { StringBuilder sb = new StringBuilder(); sb.append(StringUtils.capitalize(randomAlphaWord(7))); sb.append(" "); sb.append(StringUtils.capitalize(randomAlphaWord(12))); return sb.toString(); } /** * Creates a name looking something like "[email protected]". * * @return - random email */ public static String randomEmail() { StringBuilder sb = new StringBuilder(); sb.append(StringUtils.capitalize(randomAlphaWord(5))); sb.append("_"); sb.append(StringUtils.capitalize(randomAlphaWord(5))); sb.append("@example.com"); return sb.toString(); } /** * Creates an alpha word looking something like "Tbxau". * * @param length * - of generated string. * @return - random alpha word */ public static String randomAlphaWord(int length) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i += 1) { sb.append(randomCharLowercase()); } return sb.toString(); } public static char randomCharLowercase() { // a = 97, z = 122 // for reference: // https://en.wikipedia.org/wiki/ASCII#ASCII_printable_code_chart return (char) randomInt(97, 122); } /** * Returns a random integer within (inclusive) the given range. * * @param min * inclusive * @param max * inclusive * @return - random int */ public static int randomInt(int min, int max) { return RandomUtils.nextInt((max - min) + 1) + min; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy