String (String str) { int right = str.length() - 1; int left = 0; while (left <= right && Verifier.isXMLWhitespace(str.charAt(left))) { left++; } while (right > left && Verifier.isXMLWhitespace(str.charAt(right))) { right--; } if (left > right) { return ""; } boolean space = true; final StringBuilder buffer = new StringBuilder(right - left + 1); while (left <= right) { final char c = str.charAt(left); if (Verifier.isXMLWhitespace(c)) { if (space) { buffer.append(' '); space = false; } } else { buffer.append(c); space = true; } left++; } return buffer.toString(); }