我寫此功能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