Escribo esta función para una aplicación j2me, por lo que no tengo disponibles algunas de las clases de Java más avanzadas/modernas. Estoy obteniendo java.lang.ArrayIndexOutOfBoundsException en esto. Entonces, al parecer, o no le gusta la forma en que he inicializado la nueva matriz de Caracteres, o no estoy haciendo algo correctamente al llamar a System.arraycopy(). ¡Cualquiera y todos los consejos son apreciados!recortar el espacio en blanco de una cadena?
/*
* 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();
}
Como se señaló, hay un método String.trim() que omití. Sin embargo, pensé que agregaría lo que descubrí mientras tanto, ya que soy un novato de Java y esto podría ser útil para otros. De los documentos para System.arraycopy(): "... se lanza una excepción IndexOutOfBoundsException [if] ... destPos + length es mayor que dest.length, la longitud de la matriz de destino." iow, podría arreglar mi código inicializando mi matriz temporal así: "char [] newChars = new char [len - 1];" – user458442