- str = replaceString(str, "&", "&");
- str = replaceString(str, "<", "<");
- str = replaceString(str, ">", ">");
- return str;
- }
-
- // I can't _believe_ I have to write this by hand in 2002 ...
- static String replaceString(String str, String from, String to) {
- StringBuffer sb = new StringBuffer();
- int ix; // index of next `from'
- int offset = 0; // index of previous `from' + length(from)
-
- while ((ix = str.indexOf(from, offset)) != -1) {
- sb.append(str.substring(offset, ix));
- sb.append(to);
- offset = ix + from.length();
- }
-
- // End of string: append last bit and we're done
- sb.append(str.substring(offset));
+ StringBuilder sb = new StringBuilder();
+ for(int i = 0; i<str.length(); i++) {
+ char c = str.charAt(i);
+ switch (c) {
+ case '<':
+ sb.append("<");
+ break;
+ case '>':
+ sb.append(">");
+ break;
+ case '&':
+ sb.append("&");
+ break;
+ default:
+ sb.append(c);
+ }
+ }