Tôi đang viết hàm này cho một ứng dụng j2me, vì vậy tôi không có một số lớp java hiện đại/nâng cao hơn có sẵn cho tôi. Tôi nhận được java.lang.ArrayIndexOutOfBoundsException về điều này. Vì vậy, rõ ràng hoặc là nó không giống như cách tôi đã khởi tạo mảng newChars, hoặc tôi không làm điều gì đó một cách chính xác khi gọi System.arraycopy(). Bất kỳ lời khuyên nào đều đáng quý!cắt khoảng trắng từ một chuỗi?
/*
* 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();
}
Như đã chỉ ra, có phương thức String.trim() mà tôi đã bỏ qua. Tuy nhiên, tôi nghĩ rằng tôi muốn thêm những gì tôi phát hiện ra trong khi chờ đợi, vì tôi là một java noob và điều này có thể hữu ích cho người khác. Từ các tài liệu cho System.arraycopy(): "... một IndexOutOfBoundsException được ném [nếu] ... destPos + chiều dài lớn hơn dest.length, chiều dài của mảng đích." iow, tôi có thể sửa chữa mã của tôi bằng cách khởi tạo mảng temp của tôi như thế này: "char [] newChars = new char [len - 1];" – user458442