public static final String replace(String line, String oldString, String newString)
  {
    if(line == null)
      return null;
    int i = 0;
    if((i = line.indexOf(oldString, i)) >= 0)
    {
      char line2[] = line.toCharArray();
      char newString2[] = newString.toCharArray();
      int oLength = oldString.length();
      StringBuffer buf = new StringBuffer(line2.length);
      buf.append(line2, 0, i).append(newString2);
      i += oLength;
      int j;
      for(j = i; (i = line.indexOf(oldString, i)) > 0; j = i)
      {
        buf.append(line2, j, i - j).append(newString2);
        i += oLength;
      }      buf.append(line2, j, line2.length - j);
      return buf.toString();
    } else
    {
      return line;
    }
  }