Я пишу эту функцию для приложения 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();
}
