/* * Copyright 2003 Federal Chancellery Austria * MOA-ID has been developed in a cooperation between BRZ, the Federal * Chancellery Austria - ICT staff unit, and Graz University of Technology. * * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by * the European Commission - subsequent versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * http://www.osor.eu/eupl/ * * Unless required by applicable law or agreed to in writing, software * distributed under the Licence is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the Licence for the specific language governing permissions and * limitations under the Licence. * * This product combines work with different licenses. See the "NOTICE" text * file for details on the various modules and licenses. * The "NOTICE" text file is part of the distribution. Any derivative works * that you distribute must include a readable copy of the "NOTICE" text file. */ package at.gv.egovernment.moaspss.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("