我写此功能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();
}
正如指出的那样,我错过了一个String.trim()方法。不过,我想我会添加我发现的同时,因为我是一个java noob,这可能会对其他人有所帮助。从System.arraycopy()的文档中:“...抛出IndexOutOfBoundsException [if] ... destPos +长度大于dest.length,即目标数组的长度。”喵,我可以通过像这样初始化我的临时数组来修复我的代码:“char [] newChars = new char [len - 1];” – user458442 2010-09-26 00:41:20