/* * Copyright (C) 2010-2012 Stichting Akvo (Akvo Foundation) * * This file is part of Akvo FLOW. * * Akvo FLOW is free software: you can redistribute it and modify it under the terms of * the GNU Affero General Public License (AGPL) as published by the Free Software Foundation, * either version 3 of the License or any later version. * * Akvo FLOW is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Affero General Public License included below for more details. * * The full license text can also be seen at <http://www.gnu.org/licenses/agpl.html>. */ package com.gallatinsystems.common.util; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /** * string manipulation utility methods * * @author Christopher Fagiani */ public class StringUtil { /** * capitalizes the first letter of each word in the string. Leaves case alone for all others * * @param string * @return */ public static String capitalizeString(String string) { char[] chars = string.toCharArray(); boolean isFirst = true; for (int i = 0; i < chars.length; i++) { if (isFirst && Character.isLetter(chars[i])) { chars[i] = Character.toUpperCase(chars[i]); isFirst = false; } else if (Character.isWhitespace(chars[i]) || chars[i] == '.' || chars[i] == '\'') { isFirst = true; } else { chars[i] = Character.toLowerCase(chars[i]); } } return String.valueOf(chars); } /** * returns the four digit year as a string or an empty string if the date is null * * @param date * @return */ public static String getYearString(Date date) { String yearString = ""; if (date != null) { GregorianCalendar cal = new GregorianCalendar(); cal.setTime(date); yearString = cal.get(Calendar.YEAR) + ""; } return yearString; } public static String capitalizeFirstCharacterString(String item) { String attributeField = item; String firstChar = attributeField.substring(0, 1); firstChar = firstChar.toUpperCase(); return firstChar + attributeField.substring(1); } /** * takes a byte array and outputs it as a string of hex digits * * @param bytes * @return */ public static String toHexString(byte[] bytes) { StringBuffer hexString = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { hexString.append(Integer.toHexString(0xFF & bytes[i])); } return hexString.toString(); } }