Это будет работать:
String testpathb = fs.getAppHomePath()+"xxxtestb";
fs.mkdir(testpathb);
String testpathC = fs.getAppHomePath()+"xxxtest/";
fs.mkdir(testpathC);
Как альтернатива StringUtils
класс, упомянутый Mike, можно также использовать осведомленное о Unicode регулярное выражение, с помощью только собственными библиотеками Java:
" ユーザー名".replaceAll("\\p{Z}", "")
Или, чтобы действительно только обрезать и не удалить пробел в строке:
" ユーザ ー名 ".replaceAll("(^\\p{Z}+|\\p{Z}+$)", "")
Взгляните на Нормализацию Unicode и класс Нормализатора. Класс является новым в Java 6, но Вы найдете эквивалентную версию в библиотеке ICU4J, если Вы будете на более раннем JRE.
int character = 12288;
char[] ch = Character.toChars(character);
String input = new String(ch);
String normalized = Normalizer.normalize(input, Normalizer.Form.NFKC);
System.out.println("Hex value:\t" + Integer.toHexString(character));
System.out.println("Trimmed length :\t"
+ input.trim().length());
System.out.println("Normalized trimmed length:\t"
+ normalized.trim().length());
Попробуйте палаты общин Apache класс StringUtils. StringUtils.strip () метод должен работать на Вас.
Необходимо будет записать собственное trim()
метод на основе Character.isWhitespace()
- к сожалению, trim()
не делает то, чего требует его документ API: это разделяет только пробелы ASCII, не любой другой вид пробела.
Из документов Java это объясняет, почему это не работает.
Если этот Строковый объект представляет пустую последовательность символов, или первые и последние символы последовательности символов, представленной этой Строкой, возражают, что у обоих есть коды, больше, чем '\u0020' (пробел), то ссылка на этот Строковый объект возвращается.
Вы могли роль Ваша собственная версия достаточно легко. возможно, метод codePointAt мог использоваться с этой целью.
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html