Replace every occurences of a string within a stringTag(s): String/Number
String.replaceAll() replaces each substring of this String that matches the given regular expression with the given replacement. Remember that StringreplaceAll() returns a new String so keep the result!
[JDK1.4]
public class Test{ public static void main(String[] args){ String text = "hello world from www.rgagnon.com : hello world"; // replace all String result = text.replaceAll("(?:hello world)", "bonjour le monde"); System.out.println(result); // replace only the first match result = text.replaceFirst("(?:hello world)", "bonjour le monde"); System.out.println(result); /* output : bonjour le monde from www.rgagnon.com : bonjour le monde bonjour le monde from www.rgagnon.com : hello world */ } }
public class Test { public static void main(String[] args){ String text = "\\\\server\\apps\\file.txt"; System.out.println("original : " + text); System.out.println("converted : " + text.replaceAll("\\\\","\\\\\\\\")); /* output : original : \\server\apps\file.txt converted : \\\\server\\apps\\file.txt */ } }
Since replaceAll() is based on a regex expression, it is very easy to make the substituion case insensitive.
public class Test { public static void main(String[] args) { String test = "Real's hoWTo"; System.out.println("original : " + test); test= test.replaceAll("(?i)howto", "HowTo"); System.out.println("converted : " + test); // output : Real's HowTo } }
[ < JDK1.4]
String,replaceAll() is not available with Java version older than 1.4, you need to code the substitution.
This snippet provides a simple replacesAll() equivalent.
public static String replaceAll(String target, String from, String to) { // target is the original string // from is the string to be replaced // to is the string which will used to replace // returns a new String! int start = target.indexOf(from); if (start == -1) return target; int lf = from.length(); char [] targetChars = target.toCharArray(); StringBuffer buffer = new StringBuffer(); int copyFrom = 0; while (start != -1) { buffer.append (targetChars, copyFrom, start - copyFrom); buffer.append (to); copyFrom = start + lf; start = target.indexOf (from, copyFrom); } buffer.append (targetChars, copyFrom, targetChars.length - copyFrom); return buffer.toString(); }