/* * Copyright 2003 Federal Chancellery Austria * * 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 at.gv.egovernment.moa.util; import java.util.StringTokenizer; /** * Utitility functions for string manipulations. * * @author Harald Bratko */ public class StringUtils { /** * Removes all blanks and tabs from the given string. * * @param s The string to remove all blanks and tabs from. * @return The input string with all blanks and tabs removed from. */ public static String removeBlanks(String s) { StringTokenizer st = new StringTokenizer(s); StringBuffer sb = new StringBuffer(s.length()); while (st.hasMoreTokens()) { sb.append(st.nextToken()); } return sb.toString(); } /** * Removes all occurences of the specified token from the the given string. * * @param s The string to remove all occurences of the specified token from. * @return The input string with all occurences of the specified token removed from. */ public static String removeToken(String s, String token) { StringTokenizer st = new StringTokenizer(s, token); StringBuffer sb = new StringBuffer(s.length()); while (st.hasMoreTokens()) { sb.append(st.nextToken()); } return sb.toString(); } /** * Removes all leading zeros from the input string. * * @param s The string remove the leading zeros from. * @return The input string with the leading zeros removed from. */ public static String deleteLeadingZeros(String s) { StringBuffer sb = new StringBuffer(s); int l = sb.length(); int j = 0; for (int i=0; is that matches the given * search string by the given replace string. * * @param s The string where the replacement should take place. * @param search The pattern that should be replaced. * @param replace The string that should replace all each search * string within s. * @return A string where all occurrence of search are * replaced with replace. */ public static String replaceAll (String s, String search, String replace) { StringBuffer sb = new StringBuffer(); int i = 0, j = 0; int len = search.length(); while (j > -1) { j = s.indexOf(search, i); if (j > -1) { sb.append(s.substring(i,j)); sb.append(replace); i = j + len; } } sb.append(s.substring(i, s.length())); return sb.toString(); } /** * Changes the SecurityLayer version in the given string. * This method usually takes as input an XML structure represented in a string * format and changes the SecurityLayer namespaces prefixes and URIs from * one SecurityLayer version to another. * e.g.: code>sl10 to sl and * http://www.buergerkarte.at/namespaces/securitylayer/20020225# * to * http://www.buergerkarte.at/namespaces/securitylayer/1.2# * * @param s The string (usally an XML structure) where the * SecurityLayer version should be changed. * @param slPrefixOld The SecurityLayer namespace prefix that should be * replaced by the new one. * @param slPrefixNew The new SecurityLayer namespace prefix that should * replace the old one. * @param slNSUriOld The SecurityLayer namespace URI that should be * replaced by the new one. * @param slNSUriNew The new SecurityLayer namespace URI that should * replace the old one. * @return A string where the SecurityLayer namespace prefixes * and URIs are replaced by new ones. */ public static String changeSLVersion(String s, String slPrefixOld, String slPrefixNew, String slNSUriOld, String slNSUriNew) { String retString = replaceAll(s, slPrefixOld, slPrefixNew); retString = replaceAll(retString, slNSUriOld, slNSUriNew); return retString ; } /** * Removes the XML declaration from an XML expression. * * @param xmlString XML expression as String * * @return XML expression, XML declaration removed */ public static String removeXMLDeclaration(String xmlString) { if (xmlString!=null && xmlString.startsWith("