1 /* 2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net 3 * Copyright (C) 2004-2010 Frederico Caldeira Knabben 4 * 5 * == BEGIN LICENSE == 6 * 7 * Licensed under the terms of any of the following licenses at your 8 * choice: 9 * 10 * - GNU General Public License Version 2 or later (the "GPL") 11 * http://www.gnu.org/licenses/gpl.html 12 * 13 * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") 14 * http://www.gnu.org/licenses/lgpl.html 15 * 16 * - Mozilla Public License Version 1.1 or later (the "MPL") 17 * http://www.mozilla.org/MPL/MPL-1.1.html 18 * 19 * == END LICENSE == 20 */ 21 package net.fckeditor.tool; 22 23 import java.util.HashSet; 24 import java.util.Set; 25 import java.util.StringTokenizer; 26 27 /** 28 * Static helper methods for strings. 29 * 30 * @version $Id: Utils.java 4785 2009-12-21 20:10:28Z mosipov $ 31 */ 32 public class Utils { 33 34 /** The empty string {@code ""}. */ 35 public static final String EMPTY_STRING = ""; 36 37 /** 38 * Constructs a set of lower-cased strings from a delimiter-separated 39 * string. 40 * 41 * @param stringList 42 * strings separated with a delimiter 43 * @param delimiter 44 * separating delimiter 45 * @return a lower-cased set, empty set if stringList is empty 46 * @throws IllegalArgumentException 47 * if <code>delimiter</code> is empty 48 */ 49 public static Set<String> getSet(final String stringList, 50 final String delimiter) { 51 if (isEmpty(delimiter)) 52 throw new IllegalArgumentException( 53 "Argument 'delimiter' shouldn't be empty!"); 54 if (isEmpty(stringList)) 55 return new HashSet<String>(); 56 57 Set<String> set = new HashSet<String>(); 58 StringTokenizer st = new StringTokenizer(stringList, delimiter); 59 while (st.hasMoreTokens()) { 60 String tmp = st.nextToken(); 61 if (isNotEmpty(tmp)) // simple empty filter 62 set.add(tmp.toLowerCase()); 63 } 64 return set; 65 } 66 67 /** 68 * Constructs a set of lower-cased strings from a <code>|</code> (pipe) 69 * delimited string. 70 * 71 * @see #getSet(String, String) 72 * @param stringList 73 * strings separated with a delimiter 74 * @return a lower-cased set, empty set if stringList is empty 75 * @throws IllegalArgumentException 76 * if <code>delimiter</code> is empty 77 */ 78 public static Set<String> getSet(final String stringList) { 79 return getSet(stringList, "|"); 80 } 81 82 /** 83 * Checks if a string is empty ("") or null. 84 * 85 * @param str 86 * string to check, may be null 87 * @return <code>true</code> if the string is <code>null</code> or empty, 88 * else <code>false</code> 89 */ 90 public static boolean isEmpty(final String str) { 91 return str == null || str.length() == 0; 92 } 93 94 /** 95 * Checks if a string is not empty ("") and not null. 96 * 97 * @param str 98 * string to check, may be null 99 * @return <code>true</code> if the string is not empty and not 100 * <code>null</code>, else <code>false</code> 101 */ 102 public static boolean isNotEmpty(final String str) { 103 return !isEmpty(str); 104 } 105 106 /** 107 * Checks if a string is whitespace, empty ("") or null. Whitespace is 108 * checked by {@link Character#isWhitespace(char)}. 109 * 110 * @param str 111 * string to check, may be null 112 * @return <code>true</code> if the string is <code>null</code>, empty or 113 * whitespace 114 */ 115 public static boolean isBlank(final String str) { 116 117 if (isEmpty(str)) 118 return true; 119 120 for (char c : str.toCharArray()) { 121 if (!Character.isWhitespace(c)) 122 return false; 123 } 124 125 return true; 126 } 127 128 /** 129 * Checks if a string is not empty (""), not null and not whitespace. 130 * 131 * @param str 132 * string to check, may be null 133 * @return <code>true</code> if the string is not <code>null</code>, not 134 * empty and not whitespace. 135 */ 136 public static boolean isNotBlank(final String str) { 137 return !isBlank(str); 138 } 139 }