001package co.codewizards.cloudstore.core.util;
002
003import java.util.ArrayList;
004import java.util.Collections;
005import java.util.List;
006
007public final class StringUtil {
008
009        private StringUtil() { }
010
011        public static final List<Integer> getIndexesOf(final String string, final char c) {
012                ArrayList<Integer> indexes = new ArrayList<Integer>();
013                for (int index = 0; index < string.length(); ++index) {
014                        if (string.charAt(index) == c)
015                                indexes.add(index);
016                }
017                indexes.trimToSize();
018                return Collections.unmodifiableList(indexes);
019        }
020
021        public static final boolean isEmpty(final String string) {
022                return string == null || string.isEmpty();
023        }
024
025        public static final String nullToEmpty(final String string) {
026                return string == null ? "" : string;
027        }
028
029        public static final String emptyToNull(final String string) {
030                return isEmpty(string) ? null : string;
031        }
032
033        public static final String trim(final String string) {
034                return string == null ? null : string.trim();
035        }
036
037        public static final String trimLeft(final String string) {
038        final int len = string.length();
039        int st = 0;
040
041        while ((st < len) && (string.charAt(st) <= ' '))
042            st++;
043
044        return st > 0 ? string.substring(st) : string;
045    }
046
047        public static final String trimRight(final String string) {
048                final int length = string.length();
049                int len = length;
050
051        while ((0 < len) && (string.charAt(len - 1) <= ' '))
052            len--;
053
054        return len < length ? string.substring(0, len) : string;
055    }
056}