/** * Copyright 2013 Tommi S.E. Laukkanen * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.bubblecloud.ilves.util; /** * String utlities. * * @author Tommi S.E. Laukkanen */ public class StringUtil { /** * HTML encodes given string. * @param string string to encode * @return the encoded string. */ public static String htmlEncode(final String string) { final StringBuffer out = new StringBuffer(); for (int i = 0; i < string.length(); i++) { final char c = string.charAt(i); if (c > 127 || c == '"' || c == '<' || c == '>') { out.append("&#" + (int) c + ";"); } else { out.append(c); } } return out.toString(); } /** * Converts bytes to HEX String. * * @param bytes the bytes * @return the HEX string */ public static String toHexString(byte[] bytes) { char[] hexArray = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; char[] hexChars = new char[bytes.length * 2]; int v; for (int j = 0; j < bytes.length; j++) { v = bytes[j] & 0xFF; hexChars[j*2] = hexArray[v/16]; hexChars[j*2 + 1] = hexArray[v%16]; } return new String(hexChars); } /** * Converts camel case string to localization key convetion. * This can be used to generate localization keys from property names. * * @param camelCaseString the camel case string * @return the localization key convention string */ public static String fromCamelCaseToLocalizationKeyConvetion(final String camelCaseString) { final StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < camelCaseString.length(); i++) { final char character = camelCaseString.charAt(i); if (Character.isLowerCase(character)) { stringBuilder.append(character); } else { if (i != 0) { stringBuilder.append('-'); } stringBuilder.append(Character.toLowerCase(character)); } } return stringBuilder.toString(); } }