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

com.googlecode.gwt.test.internal.utils.GwtStringUtils Maven / Gradle / Ivy

There is a newer version: 0.63
Show newest version
package com.googlecode.gwt.test.internal.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Some Gwt String utility methods. For internal use only.
 *
 * @author Gael Lazzari
 */
public class GwtStringUtils {

    private static Pattern DOUBLE_PATTERN = Pattern.compile("^\\s*(\\d+\\.?(\\d*)).*$");

    private static Pattern NUMBER_PATTERN = Pattern.compile("^\\s*(\\d+).*$");

    public static String camelize(String s) {
        String[] strings = s.split("[-|_|\\s]");

        if (strings.length <= 0) {
            return "";
        }

        StringBuilder sb = new StringBuilder(strings[0].toLowerCase());

        for (int i = 1; i < strings.length; i++) {
            String string = strings[i];
            if (string.length() > 0) {
                sb.append(Character.toUpperCase(string.charAt(0))).append(
                        string.substring(1).toLowerCase());
            }
        }

        return sb.toString();
    }

    public static String dehyphenize(String string) {
        StringBuilder buffer = new StringBuilder(string);

        for (int c = 0; c < buffer.length(); c++) {
            char character = buffer.charAt(c);
            if (character == '-') {
                buffer.deleteCharAt(c);
                character = buffer.charAt(c);
                buffer.setCharAt(c, Character.toUpperCase(character));
            }
        }

        return buffer.toString();
    }

    public static String hyphenize(String string) {
        StringBuilder sb = new StringBuilder(string);

        for (int c = 0; c < sb.length(); c++) {
            char character = sb.charAt(c);
            if (Character.isUpperCase(character)) {
                sb.setCharAt(c, Character.toLowerCase(character));
                sb.insert(c, '-');
                c++;
            }
        }

        return sb.toString();
    }

    public static double parseDouble(String value, double defaultValue) {
        Matcher m = DOUBLE_PATTERN.matcher(value);
        if (m.matches()) {
            return Double.parseDouble(m.group(1));
        }
        return defaultValue;

    }

    public static int parseInt(String value, int defaultValue) {
        Matcher m = NUMBER_PATTERN.matcher(value);
        if (m.matches()) {
            return Integer.parseInt(m.group(1));
        }
        return defaultValue;

    }

    public static String resolveBackSlash(String input) {
        if (input == null || "".equals(input.trim())) {
            return input;
        }

        StringBuffer b = new StringBuffer();
        boolean backSlashSeen = false;
        for (int i = 0; i < input.length(); ++i) {
            char c = input.charAt(i);
            if (!backSlashSeen) {
                if (c == '\\') {
                    backSlashSeen = true;
                } else {
                    b.append(c);
                }
            } else {
                switch (c) {
                    case '\\':
                        b.append('\\');
                        break;
                    case 'n':
                        b.append('\n');
                        break;
                    case 'r':
                        b.append('\r');
                        break;
                    case 't':
                        b.append('\t');
                        break;
                    case 'f':
                        b.append('\f');
                        break;
                    case 'b':
                        b.append('\b');
                        break;
                    default:
                        b.append(c);
                }
                backSlashSeen = false;
            }
        }
        return b.toString();
    }

    /**
     * 250px => 250px 250.1px => 250.1px 250.0px => 250px
     *
     * @param string
     * @return The transformed value
     */
    public static String treatDoubleValue(String string) {

        if (string == null || "".equals(string)) {
            return string;
        }

        Matcher m = DOUBLE_PATTERN.matcher(string);
        if (m.matches() && !"".equals(m.group(2)) && Double.valueOf(m.group(2)) == 0) {
            return string.replace("." + m.group(2), "");
        } else {
            return string;
        }
    }

    private GwtStringUtils() {

    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy