String attr, s = "";
for (int i = 0; i < attrs.size(); i++) {
attr = (String) attrs.get(i);
- s += "@attr " + Utils.replaceString(attr, " ", " @attr ") + " ";
+ s += "@attr " + attr.replace(" ", " @attr ") + " ";
}
String text = term;
str.indexOf('/') != -1 ||
str.indexOf('(') != -1 ||
str.indexOf(')') != -1) {
- str = '"' + Utils.replaceString(str, "\"", "\\\"") + '"';
+ str = '"' + str.replace("\"", "\\\"") + '"';
}
return str;
// s/&/&/g;
// s/</</g;
// s/>/>/g;
- // This is hideously inefficient, but I just don't see a better
- // way using the standard JAVA library.
- //
static String xq(String str) {
- 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);
+ }
+ }
return sb.toString();
}
+
}