I asked a question earlier but met harsh criticism, so here I pose it again. Simpler, and rephrased to appeal to those who may have been concerned about the way I asked it befor
String.trim()
specifically only removes characters before the first character whose code exceeds \u0020
, and after the last such character.
This is insufficient to remove all possible white space characters - Unicode defines several more (with code points above \u0020
) that will not be matched by .trim()
.
Perhaps your white space characters aren't the ones you think they are?
EDIT comments revealed that the extra characters were indeed "special" whitespace characters, specifically \u00a0
which is a Unicode "non-breaking space". To replace those with normal spaces, use:
str = str.replace('\u00a0', ' ');