/******************************************************************************* * Copyright (c) 2000, 2007 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.help.internal.base.util; /** * This class provides static methods for some of the very used String * operations */ public class TString { // change all occurrences of oldPat to newPat public static String change(String in, String oldPat, String newPat) { if (oldPat.length() == 0) return in; if (oldPat.length() == 1 && newPat.length() == 1) return in.replace(oldPat.charAt(0), newPat.charAt(0)); if (in.indexOf(oldPat) < 0) return in; int lastIndex = 0; int newIndex = 0; StringBuffer newString = new StringBuffer(); for (;;) { newIndex = in.indexOf(oldPat, lastIndex); if (newIndex != -1) { newString.append(in.substring(lastIndex, newIndex) + newPat); lastIndex = newIndex + oldPat.length(); } else { newString.append(in.substring(lastIndex)); break; } } return newString.toString(); } }