Я пишу эту функцию для приложения J2ME, поэтому у меня нет некоторых более продвинутых/современных классов Java, доступных для меня. Я получаю java.lang.ArrayIndexOutOfBoundsException
по этому поводу. Так что, по-видимому, либо мне не нравится способ инициализации массива newChars
, либо я что-то не так делаю при вызове System.arraycopy
.
/*
* remove any leading and trailing spaces
*/
public static String trim(String str) {
char[] chars = str.toCharArray();
int len = chars.length;
// leading
while ( (len > 0 ) && ( chars[0] == ' ' ) ) {
char[] newChars = new char[] {}; // initialize empty array
System.arraycopy(chars, 1, newChars, 0, len - 1);
chars = newChars;
len = chars.length;
}
// TODO: trailing
return chars.toString();
}